/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_keys
VM-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
。