一段时间以来,我一直在远程服务器上使用公钥身份验证,用于远程 shell 以及 sshfs 挂载。强制卸载 sshfs 目录后,我注意到 ssh 开始提示我输入密码。我尝试从任何提及本地计算机的地方清除远程 .ssh/authorized_keys,并从本地计算机中清除对远程计算机的引用。然后我重复了 ssh-copy-id,它提示我输入密码,然后正常返回。但是,当我 ssh 到远程服务器时,仍然提示我输入密码。我有点困惑,不知道问题可能出在哪里,有什么建议吗?
答案1
检查远程端sshd_config
是否有AuthorizedKeysFile
符合您期望的指令(或没有;默认值为.ssh/authorized_keys
),该指令PubkeyAuthentication
未被禁用,并且已UsePAM
被禁用或 sshd 的 PAM 服务配置不强制交互式密码输入。还要检查远程端是否安装了openssh-blacklist
,如果已安装,请检查你的密钥受到影响。
答案2
注意权限,如果包含 ssh 文件的文件或目录的权限已被改为 777,那么 sshd 将出于安全原因拒绝使用该形式的身份验证。
答案3
检查 .ssh/authorized_keys 文件的权限。其他人必须具有读取权限才能读取密钥。
谢谢