在当今的互联网环境中,VPS(虚拟专用服务器)的安全性变得愈发重要。而SSH(Secure Shell)作为远程登录和执行命令的主要工具,其认证方式直接关系到VPS的安全防护水平。传统的密码登录存在被暴力破解的风险,相比之下,SSH密钥认证是一种更加安全可靠的登录方式。本文将详细介绍如何为VPS配置SSH密钥认证以提高安全性。
二、生成SSH密钥对
1. 在本地计算机上打开终端(对于Windows用户可以使用Git Bash等类似工具)。要生成SSH密钥对,通常使用OpenSSH自带的ssh – keygen命令。
2. 执行“ssh – keygen – t rsa – b 4096”。其中,“- t rsa”表示指定密钥类型为RSA算法,“- b 4096”表示密钥长度为4096位。更大的密钥长度意味着更高的安全性,但也会带来一定的性能开销。如果需要更高级别的安全性,还可以选择ed25519算法,只需将“rsa”替换为“ed25519”,并省略“- b 4096”选项,因为ed25519默认就具有较高的安全性。
3. 系统会提示你输入保存密钥文件的路径,默认路径是“~/.ssh/id_rsa”(私钥)和“~/.ssh/id_rsa.pub”(公钥),一般情况下可以直接按回车键接受默认路径。
4. 接下来会让你设置一个用于保护私钥的密码短语(passphrase)。这个密码短语是为了防止私钥文件泄露后被他人滥用。建议设置一个复杂且难以猜测的密码短语,同时也要确保自己能够记住它。如果不希望每次使用私钥时都输入密码短语,也可以留空不设置,但这会使安全性降低。
三、上传公钥到VPS
1. 使用SCP(Secure Copy Protocol)或者SFTP(SSH File Transfer Protocol)将之前生成的公钥(id_rsa.pub或id_ed25519.pub文件)复制到VPS上的“~/.ssh/authorized_keys”文件中。例如,如果你使用的是SCP,并且你的VPS用户名为user,IP地址为192.168.1.100,那么可以在本地终端执行如下命令:“scp ~/.ssh/id_rsa.pub user@192.168.1.100:~/.ssh/authorized_keys”。如果是第一次连接到该VPS,系统可能会弹出提示让你确认主机的真实性,按照指示操作即可。
2. 或者你也可以先通过SSH登录到VPS,然后使用vi编辑器创建或打开“~/.ssh/authorized_keys”文件,在里面粘贴本地公钥的内容。确保每行只包含一个公钥,并且没有多余的空格或特殊字符。
四、修改VPS端的SSH配置文件
1. 登录到VPS后,找到位于/etc/ssh/sshd_config的SSH服务配置文件。
2. 使用文本编辑器(如vi、nano等)打开该文件,找到以下几行:
PubkeyAuthentication yes
PasswordAuthentication yes
3. 去掉“PubkeyAuthentication”前面的注释符号“#”,并确保它的值为“yes”,这表示允许使用公钥进行身份验证;将“PasswordAuthentication”的值改为“no”,禁止密码登录方式,从而强制使用密钥认证。
4. 如果你还想进一步增强安全性,可以考虑修改默认的SSH端口号(默认为22),将其改为一个不易被猜到的数字。找到“Port 22”这一行,修改为你想要的端口号(如2222),然后再防火墙中开放对应的端口。
5. 修改完成后,记得保存文件并退出编辑器。最后执行“systemctl restart sshd”命令重启SSH服务使更改生效。
五、测试与验证
1. 尝试从本地计算机再次登录VPS,此时应该不再需要输入密码,而是直接通过密钥认证登录。如果一切正常,说明配置成功。
2. 如果遇到问题无法登录,可能是由于某些配置错误导致的。可以查看VPS上的/var/log/auth.log日志文件获取更多关于登录失败的信息,以便排查故障。
六、总结
通过上述步骤为VPS配置SSH密钥认证,能够有效地提高服务器的安全性,避免因弱密码等原因引发的安全风险。在实际应用中,还需要结合其他安全措施共同保障VPS的安全,例如定期更新系统补丁、安装防火墙软件等。
本文由阿里云优惠网发布。发布者:编辑员。禁止采集与转载行为,违者必究。出处:https://aliyunyh.com/223237.html
其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。