对于同一个用户,我在本地机器上有两个密钥。在远程服务器上,两个密钥都在文件中authorized_keys
。
我删除了文件中的一个键authorized_keys
。
然后我尝试使用 -i 选项用另一个密钥进行 ssh。成功了。authorized_keys
尽管我尝试使用 -i 选项使用已删除的密钥,但身份验证日志显示文件中的另一个(未删除的)密钥已用于登录。
这是正常行为吗?
我期望 ssh 仅尝试使用 -i 选项指定的密钥。我知道当没有指定密钥时,它会尝试所有密钥。当明确指定密钥时,难道不应该发生这种情况吗?或者更像是先尝试指定的密钥,然后再尝试其余的密钥。
预期行为是否在某处记录?
答案1
好的,我应该更彻底地搜索。有一个选项可以做到这一点。
为了使 SSH 仅使用指定的身份文件,我需要使用以下-o "IdentitiesOnly=yes"
选项:
ssh -o "IdentitiesOnly=yes" -i <private key filename> <hostname>
仅限身份
指定 ssh(1) 应仅使用已配置的身份验证身份和证书文件(默认文件,或在 ssh_config 文件中明确配置的文件或在 ssh(1) 命令行上传递的文件),即使 ssh-agent(1) 或 PKCS11Provider 或 SecurityKeyProvider 提供更多身份。此关键字的参数必须是 yes 或 no(默认值)。此选项适用于 ssh-agent 提供许多不同身份的情况。