两台不同计算机上的两个本地用户是否可以使用 SSH 密钥进行无需密码的身份验证?

两台不同计算机上的两个本地用户是否可以使用 SSH 密钥进行无需密码的身份验证?

/localhome/user我在同一网络上的两个单独的虚拟机上有两个本地用户(其主目录列在下面)。他们共享相同的uid(在 中设置/etc/passwd)和相同的用户名(<user>此处。)

useradd user -g user

我在 VM-A 上运行以下命令来创建公钥:

[user@VM-A] ssh-keygen -t rsa -C "[email protected]" -b 4096

我复制了在 VM-A 上创建的公钥并将其放入/localhome/dev/.ssh/authorized_keysVM-B 上。当我尝试从 VM-A ssh 到 VM-B 时,收到密码提示。

[user@VM-A] ssh user@VM-B
password:

我已确保权限设置正确(两个.ssh目录为 700,VM-B 上为 664)authorized_keys。我还确保两个用户都设置为而不是/bin/bash类似.nologin/etc/passwd

我也尝试restorecon -R -v ~/.ssh在 VM-A 和 VM-B 上运行。

为了确保我没有完全疯了,我使用我给定的帐户来看看是否可以ssh在没有密码的情况下进行。该帐户有权访问已安装的“主”驱动器。我首先尝试ssh从 VM-A 到 VM-B,并被要求输入密码。然后我创建了密钥,更新了authorized_keys,然后再次尝试。第二次我ssh使用我的帐户成功连接到另一个虚拟机。

是否可以使用本地用户在两个不同的虚拟机上设置 ssh 密钥?

答案1

你的权限authorized_keys太宽松了。你可以用以下方法修复它们

chmod u=rw,go= ~/.ssh/authorized_keys

例如,您将能够在安全日志中看到无法在服务器上使用证书的原因/var/log/auth.log

相关内容