使用OpenSSH
,我已启用 ssh-login 到我的 Ubuntu 18.04 机器,调用它Remote
并且我的用户帐户Remote
被调用Remote-User
。我还确保只能通过公钥身份验证登录。这是问题的实际描述。
我有两台本地机器,分别称为Local-A
和Local-B
,每台机器都有一个用户,分别称为User-A
和User-B
。我想限制Remote-User@Remote
仅访问User-A
和禁止其他用户User-B
,无论他们的公钥是否已添加到. 我尝试通过添加行来做到这一点.ssh/authorized_keys
Remote-User@Remote
AllowUsers User-A User-B
到,sshd_config
但我注意到即使我只是有User-B
ssh 访问Remote-User@Remote
AllowUsers User-A
这让我认为任何将公钥添加到文件中Remote-User@Remote
的.ssh/authorized_keys
用户都可以访问,而不管我尝试使用AllowUsers
.
我想知道是否有人对如何解决这个问题有任何建议。请记住,我对这个领域并不精通,所以我可能遗漏了重要信息。如果是这样,请告诉我,我很乐意更新这个问题。
文件中的
AllowUsers
选项/etc/ssh/sshd_config
正是您通过ssh
.请参阅sshd_config的手册页:
为了使更改
sshd_config
生效,您需要使用以下命令重新启动sshd
服务:如果这仍然不起作用,请检查
/etc/ssh/sshd_config.d
文件夹中是否有任何其他配置文件否决了您的AllowUsers
声明。当您将多个公钥添加到
.ssh/authorized_keys
文件时,任何拥有任何私钥的人remote-user
都可以使用remote-user
.仅允许特定用户的最佳且安全的方法是为单个用户提供单独的帐户,并且其个人公钥应
.ssh/authorized_keys
存档。此处Remote-User
不应使用普通帐户。您可以通过 openssh 中的 ssh 密钥限制用户允许。因此,单独的用户将拥有单独的帐户,只有它才能登录其帐户。SSH 密钥唯一地标识用户。它可以重复使用,但任何拥有私钥的人都可以完全访问该身份。
试图添加额外的限制将是有问题的。SSH 密钥保证密钥的所有者可以访问密钥(即只要所有者保持密钥隐私,使用他们的密钥就可以保证他们的身份)。
识别用户的任何其他形式,例如连接的源机器/IP 地址,都不会具有相同级别的保证。换句话说,这些表格具有非常真实的被欺骗/欺骗的可能性。
所以这是推荐的解决方案:
ssh-keygen
,为他们提供一个新的、唯一的 SSH 密钥authorized_keys
文件中希望这可以帮助!