SSH 要求一个用户输入密码,而不要求另一个用户输入密码

SSH 要求一个用户输入密码,而不要求另一个用户输入密码

我在同一台计算机上有两个用户,并尝试为用户 2 设置 SSH。SSH 仍在要求第二个用户输入密码,因此我将 .rsa 文件从用户 1 复制到用户 2。尽管他们拥有相同的文件和权限,并且尽管用户 1 无需输入密码,但 SSH 仍要求用户 2 输入密码。什么原因导致同一台计算机上拥有相同 .rsa 文件的两个用户对 SSH 的响应不同?

答案1

从 root 开始直到主目录中的 .ssh 目录的所有目录都不能对“组”或“其他”具有写入权限。这是 ssh 为增加安全性而提出的要求。如果权限未如此设置,攻击者就有办法进入并修改或复制 .ssh,从他们具有写入权限的第一个目录开始,将私钥复制到他们选择的另一个用户或更新密钥,从而允许他们欺骗您并使用 ssh 以您的身份登录,而无需输入密码。因此,如果没有使用足够的权限对​​ .ssh 密钥进行适当保护,它们将无法工作。

答案2

我回答的是假设用户 1 和用户 2 在远程服务器上,并且您正在本地使用私钥连接到该服务器。

如果您尝试使用本地用户 1/用户 2 帐户连接到远程服务器,那么我的答案就不适用。


在远程服务器上你需要将公钥的内容添加到:

~/.ssh/authorized_keys

文件的内容将如下所示:

在此处输入图片描述

答案3

之前有人给出了一个合理的答案(他们一定删除了它),认为 .rsa 和所包含文件的权限不正确。虽然这不是问题所在,但几乎是正确的。事实证明,所有指向 .rsa 的文件夹都需要具有适当的权限。

一旦我使它们相同,无提示的 ssh 就可以工作,第一次提示接受主机密钥,但在下一次连接时不提示。

[root@computer ~]# ls -ld /home/user2 /home/user1

drwxrwx--- 24 user2 user2  4096 Jun  2 13:13 /home/user2
drwxr-xr-x 97 user1 user1 12288 Jun  2 13:06 /home/user1



[root@computer ~]# chmod -v 755 /home/user2

mode of `/home/user2' changed to 0755 (rwxr-xr-x)



[root@computer ~]# ls -ld /home/user2 /home/user1

drwxr-xr-x 24 user2 user2  4096 Jun  2 13:13 /home/user2
drwxr-xr-x 97 user1 user1 12288 Jun  2 13:06 /home/user1

相关内容