分析问题

分析问题

编辑:这个问题被重新设计,以使其对社区更有用,并且对我来说不那么具体。

关于 ssh 和授权密钥访问的问题似乎经常出现,但似乎很少有明确的答案;

我将 SSH 公钥复制到 authorized_keys 后,服务器仍要求输入密码

ssh 不接受公钥

如何在 11.10 中使用密钥访问 ssh

无密码 ssh 不起作用

那么,在社区看来,彻底解决此类问题的可靠方法是什么?

答案1

分析问题

ssh 连接可能出错的地方有两个,一个是服务器,另一个是客户端。我们希望一次排除一个问题。

在服务器上

要增加服务器上的日志记录,请在 /etc/ssh/sshd_config 文件中设置以下行;

日志级别 DEBUG

还有 DEBUG2 和 DEBUG3 可以将更多的信息发送到日志。

要监视日志,请使用命令尾部-f /var/log/auth.log

在客户端

您可以使用 -v 选项为客户端连接添加详细程度。

SSH-V[电子邮件保护]

还有 -vv 和 -vvv 可以增加输出的详细程度

发现错误

使用上述命令在服务器上设置日志监控,然后尝试使用上述详细程度从客户端连接到它。现在,仔细检查每个输出并查找不能的,没有权限的,没有这样的身份:RSA1 标识符不正确's 等等。如果你的处境与我类似,这些很可能就是问题所在。

常见陷阱

权限 - 客户端

证书和known_hosts(通常在~.ssh中找到)都需要用户可读。在最简单的情况下,id_rsa、id_rsa.pub和knwon_hosts应该由您的用户组拥有并属于您的用户组,并且应该可供用户读取,以下是“默认”设置。

-rw------- 用户名 用户名 id_rsa

-rw-r--r-- 用户名 用户名 id_rsa.pub

-rw-r--r-- 用户名 用户名 known_hosts

权限 - 服务器端

再次,证书和这次的 authorized_keys 文件必须可由登录的用户读取。默认值如下所示:

-rw------- 用户名 用户名 authorized_keys

-rw-r--r-- 用户名 用户名 id_rsa

加密驱动器/目录

服务器上的 SSH 需要能够查看/读取 authorized_keys 文件和相关服务器证书;因此,如果它们位于加密设备上,则会话必须处于活动状态,以便守护进程可以读取该设备。这通常出现在您可以通过密码登录时,并且当该会话处于活动状态时,您可以通过授权密钥登录,而无需密码。

相关内容