对于某些用户来说,无密码 ssh 无法工作

对于某些用户来说,无密码 ssh 无法工作

我有一个新的 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 活动的详细信息。

相关内容