CentOSシステムSSHは秘密を免除した後もパスワードを入力する必要があります(解決済み)

9181 ワード

1、問題


ssh-keygen-t rsaとssh-copy-id-i node 1で操作すると、秘密保護ログインにはパスワードを入力する必要があります.
[root@node1 ~]# ssh node1
The authenticity of host 'node1 (192.168.1.160)' can't be established.
ECDSA key fingerprint is SHA256:CzXPsWonK4Fxx8mQpRHXL1K8R8eqyQr+Zn95HGS8zQ4.
ECDSA key fingerprint is MD5:61:95:b5:57:d3:bb:d0:9d:bf:9c:e1:d4:40:4f:07:d6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'node1,192.168.1.160' (ECDSA) to the list of known hosts.
root@node1's password: 

2、原因と解決方法


一般的に失敗の原因は、ディレクトリファイルの権限とディレクトリの所有者の2つです.(1)ディレクトリファイルの権限.ssh親ディレクトリの権限は755です(私のは/rootです).sshディレクトリ権限は700、authorized_keysファイル600
[root@node1 ~]# chmod 755 /root
[root@node1 ~]# chmod 700 .ssh
[root@node1 ~]# chmod 600 .ssh/authorized_keys

(2)ディレクトリの所有者は,上記の方法で問題が解決していない場合は,可能である.ssh親ディレクトリの所有者に問題があります.
[root@node1 ~]# ls -al .ssh
total 12
drwx------   2 root root    80 Nov  3 10:07 .
drwxr-xr-x. 11 hdfs users 4096 Nov  3 09:38 ..
-rw-------   1 root root     0 Nov  3 10:06 authorized_keys
-rw-------   1 root root  1679 Nov  3 09:38 id_rsa
-rw-r--r--   1 root root   390 Nov  3 09:38 id_rsa.pub
-rw-r--r--   1 root root     0 Nov  3 10:07 known_hosts

ここで見つけたssh親ディレクトリ(.)の所有者に問題があります.
次のように変更します.
[root@node1 ~]# chown root:root /root
[root@node1 ~]# ls -al .ssh
total 16
drwx------   2 root root   80 Nov  3 10:07 .
drwxr-xr-x. 11 root root 4096 Nov  3 09:38 ..
-rw-------   1 root root 1135 Nov  3 10:11 authorized_keys
-rw-------   1 root root 1679 Nov  3 09:38 id_rsa
-rw-r--r--   1 root root  390 Nov  3 09:38 id_rsa.pub
-rw-r--r--   1 root root    0 Nov  3 10:07 known_hosts
[root@node1 ~]# 

3、検証

[root@node2 ~]# ssh-copy-id -i node1
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@node1's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'node1'"
and check to make sure that only the key(s) you wanted were added.

[root@node2 ~]# ssh node1
Last login: Fri Nov  3 10:04:03 2017 from hadron
[root@node1 ~]#