我在使用公钥身份验证登录到我的一台计算机时遇到问题,因此我想调试该问题。我有一个复杂的 ssh 配置文件,我想暂时忽略它,直到找到问题为止。所以我在命令行上指定所有内容:
ssh -F /dev/null -vvv -i ~/.ssh/mykey -p 12345 myuser@mymachine
但是 ssh 继续提供大量公钥文件(所有这些文件都失败),而不是简单地提供我在命令行中强制执行的文件。
它实际上提供了我~/.ssh
目录中的所有密钥。它开始提供我强制提供的公钥,但失败了(我还不知道为什么),然后它继续提供目录中的其余公钥~/.ssh
。
这是为什么?我希望在mykey
失败之后,它应该停止尝试。
答案1
OpenSSH 提供默认身份和ssh-agent
默认加载的身份(这通常是您想要的)。如果你想阻止这种行为,有一个选项IdentitiesOnly
:
IdentitiesOnly
指定
ssh(1)
应该只使用身份验证身份和证书文件在文件中显式配置ssh_config
或在ssh(1)
命令行上传递,即使ssh-agent(1)
或 aPKCS11Provider
提供更多身份。该关键字的参数必须是yes
orno
(默认值)。此选项适用于ssh-agent
提供许多不同身份的情况。