没有密码的 ssh 对某些用户不起作用

jos*_*xdr 4 linux solaris ssh public-key

我有一个新的 RHEL4 Linux 机器,我用它通过 scp 将数据复制到旧的 Solaris 2.6 和 RHEL3 Linux 机器。我发现使用相同的设置,它适用于某些用户,但不适用于其他用户。对于用户 jane,这很好用:

jane@host1$ ssh -v remhost

debug1: Next authentication method: publickey
debug1: Trying private key: /mnt/home/osborjo/.ssh/identity
debug1: Offering public key: /mnt/home/osborjo/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Run Code Online (Sandbox Code Playgroud)

对于用户 jack,它不会:

jack@host1 ssh -v remhost

debug1: Next authentication method: publickey
debug1: Trying private key: /mnt/home/oper1/.ssh/identity
debug1: Offering public key: /mnt/home/oper1/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password,keyboard-interactive
Run Code Online (Sandbox Code Playgroud)

我查看了所有密钥和文件的权限,它们看起来都一样。由于我使用的是 NFS 挂载的主目录,因此远程主机和本地主机的密钥都在同一目录中。这是寻找 jane 的方式:

jane@host1$ ls -l $HOME/.ssh

-rw-rw-r--   1 jane    operator     394 Jan 27 16:28 authorized_keys
-rw-------   1 jane    operator    1675 Jan 27 16:27 id_rsa
-rw-r--r--   1 jane    operator     394 Jan 27 16:27 id_rsa.pub
-rw-rw-r--   1 jane    operator    1205 Jan 27 16:46 known_hosts
Run Code Online (Sandbox Code Playgroud)

对于用户插孔:

jack@host1$ ls -l $HOME/.ssh

-rw-rw-r--   1 jack    engineer    394  Jan 27 16:28 authorized_keys
-rw-------   1 jack    engineer    1675 Jan 27 16:27 id_rsa
-rw-r--r--   1 jack    engineer    394  Jan 27 16:27 id_rsa.pub
-rw-rw-r--   1 jack    engineer    1205 Jan 27 16:46 known_hosts
Run Code Online (Sandbox Code Playgroud)

作为最后的努力,我将authorized_keys、id_rsa 和id_rsa.pub 从jill 复制到jack,并使用vi 更改了authorized_keys 和id_rsa.pub 中的用户名。它仍然没有工作。两个用户之间似乎有些不同,但我无法弄清楚它是什么。

jos*_*xdr 6

我找到了答案。它在用户 jack 的主目录的权限中。用户 jack 对主目录具有组写入权限,而 jane 没有。问题是网络上所有的教程都指定了.ssh目录和文件的权限,但没有提到用户目录本身需要关闭组的写权限。