我正在设置无密码登录这个链接但我无法让它发挥作用。
当我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 将认为这是可能的入侵,并且不允许使用密钥登录。