我有一个新的 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).
对于用户 jack 来说,不是:
jack@host1 ssh -v 远程主机
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
我查看了所有密钥和文件的权限,它们看起来都一样。由于我使用的是 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
对于用户插孔:
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
作为最后的努力,我将 authorized_keys、id_rsa 和 id_rsa.pub 从 jill 复制到 jack,并使用 vi 更改了 authorized_keys 和 id_rsa.pub 中的用户名。但仍然没有用。这两个用户之间似乎有些不同,但我不知道是什么不同。
答案1
我找到了答案。答案就在用户 jack 的主目录的权限中。用户 jack 对主目录具有组写入权限,而 jane 没有。问题是,网络上的所有教程都指定了 .ssh 目录和文件的权限,但没有提到用户目录本身需要关闭组的写入权限。
答案2
您是否尝试过限制目录的权限.ssh
?因为在大多数情况下,这样做是可行的。虽然不确定“严格”配置在哪里,但我之前遇到过几次同样的问题,更改目录的权限.ssh
解决了这个问题。
答案3
我遇到了同样的问题,但是一个用户通过 ssh 连接到同一系统本地的另一个用户。
两个用户的所有权限相同。
实验表明,用户 A 和 B 可以互相以对方身份登录,但都无法以用户 C 身份连接。
事实证明,用户 C(作为系统用户)没有影子条目,尽管他有一个密码条目。
希望这对以后遇到同样问题的人有所帮助。
系统:OpenIndiana oi_151a
答案4
我使用 CentOS,实际上是 RHEL。我发现 .ssh 目录/文件的 SELinux 内容错误。
检查 /var/log/audit/audit.log 了解有关 SELiunx 活动的详细信息。