验证使用哪个密钥连接 SSH

验证使用哪个密钥连接 SSH

我通常使用特定的密钥连接到特定的服务器,如下所示:

$ ssh -i key.pem ec2-user@server

昨天我意识到我一直在使用的密钥实际上并不在ec2-userauthorized_keys文件中。 只列出了一个密钥,我的机器上也有这个密钥。

我想知道如何使用上述命令成功连接。有没有办法让程序ssh明确描述它使用哪个键进行连接?

答案1

当提供-v连接命令时,ssh它会显示几行,例如

debug1:提供公钥:/home/foo/.ssh/id_rsa SHA256:hash debug1:服务器接受密钥:/home/foo/.ssh/id_rsa SHA256:hash

您可以从客户端的角度查看所使用的密钥。

在服务器上应该记录/var/log/auth.log如下:

sshd[1668]:<user><ip>端口<port>ssh2 接受的公钥: RSA SHA256:`

我怀疑您实际上会在 上看到密钥authorized_keys,也许在~/.ssh/id_rsa或类似文件中(默认情况下会加载它们)。如果您想使用提供的密钥,并且只使用那个,即使代理上有其他公钥文件或密钥,您也应该设置IdentitiesOnly=yes,例如

ssh -oIdentitiesOnly=yes -i key.pem ec2-user@server

虽然对于您经常连接的主机,我建议进行以下设置~/.ssh/ssh_config

Host server
User ec2-user
IdentitiesOnly yes
IdentityFile key.pem

所以你可以这样做ssh server

相关内容