背景

背景

背景

我是一名 php 开发人员,已经开始了一份新工作。该公司拥有大量 docker 实例,并且能够启动多个版本,例如:检查特定的 git 分支等。系统复制所有相关文件以及密钥和访问权限。

当这些被旋转起来时,它们最终会得到不同的 ssh 地址。常用命令:ssh [email protected]按预期工作。

但是,我正在操作多个密钥(因此我可以单独轮换并保持个人密钥和私钥不相关等)。所有这些启动的实例都将使用相同的密钥

为此,我可以使用ssh -i [path to key] [user@domain].每次都输入这个很麻烦。

在 bash 和 MySQL 中,您可以提示输入用户名/密码/其他内容:mysql -u -p例如。我已经多次使用别名或 Bash 脚本来达到良好的效果。

我想将别名设置ssh_test为:ssh -i [path to key]并让它请求地址以节省(大量)输入。

问题

我怎样才能ssh以提示输入地址的方式使用该命令

提前致谢。

答案1

~/.ssh/config为此创建一个文件:

# everything else matches this
Host *
  IdentityFile ~/.ssh/id_rsa

Host server1
  Hostname server1.fqdn
  IdentityFile ~/.ssh/server1

Host server2
  Hostname server2.fqdn
  IdentityFile ~/.ssh/server2

Host server3
  Hostname server3.fqdn
  IdentityFile ~/.ssh/server3

例如,当您使用 ssh客户端时ssh server2,ssh 客户端会自动获取并使用~/.ssh/server2密钥。因为它Host server2与上面的 ssh 配置文件匹配。

如果您这样做ssh anyotherserver,ssh 客户端将自动选择并使用~/.ssh/id_rsa。因为它Host *与上面的 ssh 配置文件匹配。

答案2

假设您使用的是 bash,您需要指定下面的密​​钥文件。

echo “alias ssh_test=‘ssh -i <path/key>’ >> ~/.bashrc

相关内容