所以基本上我想找到一种更安全的方式来 ssh 进入我的服务器,因为它位于一个非常大的 LAN 中。我尝试使用防火墙只允许某些 IP 进入,这很有效,但有人可以手动将 IP 更改为允许进入 UFW 的 IP。
我想要的是,如果有人想登录 SSH,我作为服务器必须手动将客户端的密钥输入到服务器中。
答案1
我想要的是,如果有人想登录 SSH,我作为服务器必须手动将客户端的密钥输入到服务器中。
这基本上就是基于密钥的身份验证做。
您可以为每个允许连接的用户添加一个密钥(或多个密钥)。密钥是大型加密秘密,即完全无法进行暴力破解。没有密钥的人无法进行身份验证。
对于暴露在互联网上的服务器来说,这是完全可以接受的。
答案2
如果您想要真正控制访问,请禁用基于密码的登录并只允许使用私钥访问。
如果您使用只有您才有权访问的受密码保护的私钥,那么无论他们使用什么 IP 地址,他们都无法登录。
您可以通过编辑/etc/ssh/sshd_config
文件和设置来禁用基于密码的登录ChallengeResponseAuthentication
,PasswordAuthentication
以及 (更多详细信息UsePAM
no
这里)您应该只在正确设置并测试使用 ssh 密钥登录后才执行此操作,这样您就不会将自己锁在机器之外。