我使用单个私钥通过 PuTTY 登录多个 Linux 服务器。当我需要登录新机器时,我首先通过密码验证登录,然后添加我的公钥~/.ssh/authorized_keys2
并使用私钥。
但是有一台机器我无法使用私钥登录。我检查了.ssh
目录和authorized_keys2
文件的权限,但它们与我可以成功登录的机器上的权限相同。
这里可能存在什么问题?管理员是否可以禁用基于私钥的登录?
答案1
您应该检查sshd
日志以了解它为什么拒绝您的连接。
我发现任何管理员都不太可能禁用公钥认证。
请注意,该authorized_keys2
文件已弃用很长时间。请使用正确的authorized_keys
文件。虽然默认的 OpenSSH 配置允许两个文件实现向后兼容,但此特定安装可能authorized_keys
仅允许使用正确的文件。请检查AuthorizedKeysFile
中的指令sshd_config
。
答案2
OpenSSH 在配置文件中支持 PubkeyAuthentication 选项。它会影响 SSH 版本 2 连接,并且可以将选项设置为 no。此外,还可以配置文件名。所以这回答了你的最后一个问题。
要找出发生了什么,最好的办法是检查服务器的日志。(这可能需要您具有超级用户(“root”)访问权限。)确切的日志名称可能因系统而异:检查 /var/log/authlog
如果该文件不存在,请尝试 ls -lt /var/log
-t 按时间排序,这样您就可以找出登录尝试失败时更新的日志。(这对于不太活跃的服务器非常有用。如果大量日志频繁更新,这可能就没那么有用了。)