ssh 不接受在命令行上传递的密钥

ssh 不接受在命令行上传递的密钥

我在使用公钥身份验证登录到我的一台计算机时遇到问题,因此我想调试该问题。我有一个复杂的 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提供更多身份。该关键字的参数必须是yesor no(默认值)。此选项适用于ssh-agent提供许多不同身份的情况。

相关内容