无密码 ssh 在 CentOS 6.4 中不起作用?

无密码 ssh 在 CentOS 6.4 中不起作用?

我正在设置无密码登录这个链接但我无法让它发挥作用。

当我ssh localhost这样做时,它总是要求输入密码。

我也提到过这个问题:ssh 无密码身份验证不起作用

[impadmin@pearl ~]$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is 6c:d3:3b:cc:05:7f:10:e8:17:cc:4c:14:be:01:bb:f7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
impadmin@localhost's password:
Permission denied, please try again.
impadmin@localhost's password:
Permission denied, please try again.
impadmin@localhost's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

更新

ls .ssh/ -l
total 16
-rw-------. 1 impadmin impadmin  396 Apr  9 17:04 authorized_keys
-rw-------. 1 impadmin impadmin 1675 Apr  9 17:03 id_rsa
-rw-r--r--. 1 impadmin impadmin  396 Apr  9 17:03 id_rsa.pub
-rw-r--r--. 1 impadmin impadmin  391 Apr  9 17:05 known_hosts

我正在尝试在同一台计算机上实现用户 impadmin 的无密码登录来安装 Hadoop。

答案1

为了使公钥身份验证起作用,SSH 守护程序需要确保authorized_keys 文件中的密钥不能被所有者(当然还有root)以外的任何人篡改。

这意味着必须限制用户~/.ssh目录以及指向该目录的所有目录的写入权限/,以便只有所有者(和 root)可以写入它们。因此,如果您的主目录是/home/impadmin,您需要检查以下内容:

  • /home应该是模式dwrx-rx-rx并且由root拥有
  • /home/impadmin应该由组拥有impadmin并只允许写访问impadmin- 组或其他人不允许写访问。您可以选择是否允许组/其他人读取/执行访问权限,但如果您允许他们写入访问权限,则公钥将不起作用。
  • /home/impadmin/.ssh应该有权限drwx------并且属于impadmin
  • /home/impadmin/.ssh/id_rsa应该有权限-rw-------并且属于impadmin
  • /home/impadmin/.ssh/id_rsa.pub并且/home/impadmin/.ssh/id_rsa.pub必须由任何其他用户拥有impadmin并且没有任何其他用户的写入权限。它们可能可读,但不可写。

如果任何目录或文件可由 impadmin 以外的其他用户写入,SSH 将认为这是可能的入侵,并且不允许使用密钥登录。

相关内容