我设置了一台客户端 linux 计算机,通过 ssh/sshfs 使用 priv/pub 密钥对连接到 linux 服务器,因此它不需要密码。我使用了这种方法:
http://www.linuxproblem.org/art_9.html
在客户端,使用创建 priv/pub 密钥对
ssh-keygen -t rsa在服务器上创建
.ssh目录:ssh user@192.168.1.111mkdir -p .ssh将公钥添加到服务器的授权密钥中:
cat .ssh/id_rsa.pub | ssh user@192.168.1.111 'cat >> .ssh/authorized_keys'
这行得通。但是,当我在另一台计算机上尝试以下任一方法时,它们都失败了(注意:我在另外两台计算机上尝试过,但都失败了):
在第二台计算机上创建一个新的 priv/pub 密钥对,就像在第一台计算机上一样,将 pub 密钥导出到服务器(失败)
将
id_rsaand复制id_rsa.pub到新客户端计算机上的.ssh目录并使用它(这也失败了)
在第二个和第三个客户端上,它一直在询问远程用户的密码(不是密钥文件的密码)。我现在已经在 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”。