我家里的 .ssh 文件夹中有一堆密钥。如果我尝试使用以下命令登录 EC2 实例
ssh -2 -vvvv -i ~/.ec2/boogoo.pem [email protected]
我在调试输出中看到这一点:
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: abhi@panini
我看到一堆密钥像这样尝试,直到服务器用消息禁止 ssh 尝试
Too many authentication failures
现在,如果我删除 .ssh 文件夹,则在“debug1:可以继续的身份验证:publickey”是 boogoo.pem 密钥,我可以登录服务器。
我很困惑为什么会出现这种情况? -i 开关难道不应该向 ssh 客户端明确表示,boogoo.pem 是它应该首先尝试的密钥,而不是尝试 .ssh 文件夹中存在的所有其他密钥吗?
答案1
添加-o "IdentitiesOnly yes"
到命令行,或者添加IdentitiesOnly yes
到中的相应部分~/.ssh/config
。
默认情况下,ssh
将默认位置中的所有密钥~/.ssh
和身份验证代理所代表的所有身份提供给远程系统,如果您在那里拥有太多密钥,远程系统可能会因为失败次数过多而将您踢出。启用该IdentitiesOnly
选项指定仅应提供明确配置的身份,这样可以解决问题。
也可以看看SuperUser 上的这个答案。