我设置了一个客户端linux计算机,通过带有priv / pub密钥对的ssh / sshfs连接到linux服务器,因此不需要密码 . 我用这个方法:
http://www.linuxproblem.org/art_9.html
-
在客户端上,使用
ssh-keygen -t rsa
创建priv / pub密钥对 -
在服务器上创建
.ssh
目录:ssh user@192.168.1.111
mkdir -p .ssh -
将公钥添加到服务器的授权密钥:
cat .ssh/id_rsa.pub | ssh user@192.168.1.111 'cat >> .ssh/authorized_keys'
这有效 . 但是,当我在另一台计算机上尝试以下任一方法时,它们都会失败( Note: I tried this on two other computers and both failed ):
-
在第二台计算机上创建一个新的priv / pub密钥对,就像在第一台计算机上一样,将pub密钥导出到服务器 (This fails)
-
将
id_rsa
和id_rsa.pub
复制到新客户端计算机上的.ssh
目录并使用 (this also fails)
在第二个和第三个客户端上,它一直询问远程用户的密码(而不是密钥文件的密码) . 我现在在3台不同的计算机上试过这个,它只适用于我设置的第一个客户端 . 没有其他人工作 . 为什么服务器只接受第一个?
查看日志,我在成功的客户端和被拒绝的客户端中看到以下区别:
//Rejected
/var/log/audit/audit.log:type=USER_AUTH msg=audit(1394819951.391:76): user pid=1787 uid=0 auid=4295967295 ses=4295967295 subj=system_u:system_r:sshd_t:s0-s0:d0.c1023 msg='op=pubkey acct="myuser" exe="/usr/sbin/sshd" hostname=? addr=192.168.1.138 terminal=ssh res=failed'
//Successful
/var/log/audit/audit.log:type=USER_AUTH msg=audit(1394821121.443:114): user pid=1865 uid=0 auid=4395767295 ses=4395767295 subj=system_u:system_r:sshd_t:s0-s0:d0.c1023 msg='op=pubkey_auth rport=56096 acct="myuser" exe="/usr/sbin/sshd" hostname=? addr=192.168.1.125 terminal=? res=success'
不同的是成功的一个有 rport=56096
而另一个没有"rport" .