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 中的用户名。它仍然没有工作。两个用户之间似乎有些不同,但我无法弄清楚它是什么。
我找到了答案。它在用户 jack 的主目录的权限中。用户 jack 对主目录具有组写入权限,而 jane 没有。问题是网络上所有的教程都指定了.ssh目录和文件的权限,但没有提到用户目录本身需要关闭组的写权限。