如何在ssh中使用多个私钥?

我已经成功设置了SSH以使用私钥/公钥身份验证。现在我可以进行操作了。
ssh user@server1

它使用私钥登录。现在我想连接到另一个服务器并使用不同的密钥。如何设置它?
ssh user@server1

使用私钥1

ssh user@server2

并且使用privatekey2

7没有真正的原因 - 一个是个人神秘盒,另一个是工作服务器,我不想在工作中使用家里的钥匙。 - Joshua
没有一个答案似乎能够完全回答这个问题,例如如何创建不同的密钥privatekey1和privatekey2。 - jpw
3个回答

你可以在你的~/.ssh/config文件中进行设置。你会有类似于以下这样的内容:
Host server1
IdentityFile ~/.ssh/key_file1

Host server2
IdentityFile ~/.ssh/key_file2

man ssh_config 是一个参考文档。


5您还可以为每台主机指定“User”,以减少按键次数。最后,当您使用ssh-keygen为每台主机生成新的SSH密钥时,请确保实际输入备用密钥路径。 - Marco Ceppi
是否有选项可以指定默认的键,比如说“主机x ->键1”,然后其余的主机为“键2”。 - azerafati
是的,请使用 Host *并添加默认值,然后可以在下面添加覆盖项。还有: man_ssh_config特别是关于“Host”部分中与星号“*”和感叹号“!”相关的部分。 - immeëmosol

有几个选项。
1. 使用ssh-add将两个密钥加载到您的ssh代理中。然后在连接到两个服务器时,两个密钥都将可用。 2. 创建您的$HOME/.ssh/config文件,并为server1和server2分别创建一个Host部分。在每个Host部分中,添加一个IdentityFile选项,指向相应的私钥文件。

2ssh代理是一个很好的想法,如果我在~/.ssh目录下同时拥有公钥和私钥文件,比如key1和key1.pub,它们将会自动加载。 - Joshua