ssh 如何选择正确的密钥来使用?

vol*_*olk 6 ssh authentication

如何ssh-agent理解应该将哪个密钥用于哪个远程服务器?

我遇到过以某种方式触及这个主题的不同问题和帖子,但我仍然不清楚。

我发现,如果您想使用不同的 ssh 密钥,您需要使用-i选项并指定所需密钥的路径,或者您可以设置身份文件,指定要使用哪个主机的密钥对。

但这是否意味着默认情况下ssh-agent只能使用一对密钥,并且会尝试将其用于所有远程服务器?

Jak*_*uje 6

但这是否意味着默认情况下ssh-agent只能使用一对密钥,并且会尝试将其用于所有远程服务器?

默认情况下,ssh-agent将使用添加到它的所有密钥到您连接的所有服务器。您可以ssh_config像其他答案一样限制键。

密钥有指纹,但在公钥认证的第一阶段,公共部分只是根据服务器列表进行验证,如果不匹配,则跳过认证(通常是其他密钥或密码认证)。

  • 要查看这一点,请使用 -v verbose 选项运行 SSH 客户端。 (2认同)

小智 5

SSH 支持一个~/.ssh/config文件,允许您为不同的主机指定不同的密钥。所以你可以有

Host github.com
    IdentityFile ~/.ssh/github.key
Host example.com
    IdentityFile ~/.ssh/example.key
Run Code Online (Sandbox Code Playgroud)

这里有一个 关于此功能的很好的教程。