Linux 服务器如何允许任何人使用 ssh-copy-id 复制字符串(公钥)而无需身份验证?它不允许未知用户将任何恶意文件复制到服务器上吗?
答案1
ssh-copy-id
只是自动执行命令
scp .ssh/id_rsa.pub user@other-host:
ssh user@other-host 'cat id_rsa.pub >> .ssh/authorized_keys'
ssh user@other-host 'rm id_rsa.pub'
也就是说:它将您的本地id_rsa.pub
文件复制到另一台服务器并将其附加到远程用户的authorized_keys
文件中。
这只是一个方便的脚本,它需要身份验证。您必须提供user
的密码(在other-host
)才能使其工作。除了和ssh-copy-id
之外不执行任何其他操作scp
ssh
代表你所以如果他们需要密码验证,ssh-copy-id
也会这样做。
答案2
如果他们不知道密码,他们就无法将 ID 复制到服务器,所以不要关闭密码认证。
Match User user1,user2,user3
PasswordAuthentication yes
编辑:
如果您允许无需身份验证即可登录,他们甚至不需要复制他们的密钥,因为如果他们知道用户名,他们就可以在没有密钥的情况下登录。