背景
我是一名 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