我想使用不同的私钥文件连接到不同的 SSH 服务器(ssh://git-server:port/repository
)。该如何管理?SSH 似乎假定私钥文件在 中~/.ssh/id_rsa
。
答案1
这就是为什么有这个-i
选项:
-i identity_file
选择从中读取 RSA 或 DSA 身份验证身份(私钥)的文件。
~/.ssh/identity
对于协议版本 1,默认为~/.ssh/id_rsa
,~/.ssh/id_dsa
对于协议版本 2,默认为 。还可以在配置文件中按主机指定身份文件。可以有多个
-i
选项(并在配置文件中指定多个身份)。
如果你想让这个永久生效,你需要设置你的 SSH 配置文件并设置相应的IdentityFile
选项。
IdentityFile
指定从中读取用户的 DSA、ECDSA 或 DSA 身份验证身份的文件。[…]
如果您看到类似这样的对话框:
您需要输入您的用户密码您的 OS X 帐户。不是您的密钥密码,也不是远程 SSH 密码。这是因为他们的身份尚未存储在钥匙串中。
根据本教程,以下命令应该适当地添加它们:
ssh-add -K
答案2
实现此目的的最简单方法是使用 ssh 配置文件。
猫〜/ .ssh /配置
HOST *
USER root
您还可以指定特定子域使用特定用户。如果您的笔记本电脑在网络之间移动,这很有用。
HOST 192.168.*.*
USER homeuser
HOST 10.2.*.*
USER workuser
您甚至可以通过域进行配置,并对不同的域使用不同的 ssh 密钥。
HOST *.microsoft.com
USER bill
IdentityFile ~/.ssh/microsoft/id_rsa
HOST *.apple.com
USER steve
IdentityFile ~/.ssh/apple/id_rsa