在Linux云服务器中,使用SSH(Secure Shell)进行远程管理是一种常见的操作方式。为了提高服务器的安全性,建议采用基于密钥的身份验证来替代传统的密码登录方式。
生成密钥对
在本地计算机上打开终端窗口,然后运行以下命令以创建新的RSA密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
其中,“-t rsa”表示使用RSA算法,“-b 4096”指定密钥长度为4096位,而“-C”后面跟随的是你的电子邮件地址,作为标签信息。
保护私钥
系统会提示你输入保存密钥文件的位置,默认路径通常是~/.ssh/id_rsa,直接按回车键接受默认值即可。接下来会让你设置一个passphrase(密码短语),这是为了进一步加密私钥,即使有人获取了你的私钥文件,没有正确的passphrase也无法使用它。如果你希望每次使用该密钥时都必须输入密码,则可以设置一个强密码;如果想要实现免密码登录,则可以留空。
上传公钥到服务器
现在我们已经有了私钥和公钥,接下来需要将公钥复制到远程服务器上。可以通过scp命令或者直接登录服务器后手动添加。
使用SCP命令的方法如下:scp ~/.ssh/id_rsa.pub user@your_server_ip:/tmp/authorized_keys
这行命令会把本地生成的id_rsa.pub文件传送到服务器的/tmp目录下,并重命名为authorized_keys。
配置服务器端SSH服务
通过SSH连接到你的云服务器,进入/home/user/.ssh/目录(如果是root用户则为/root/.ssh/)。如果没有这个文件夹,请先创建它。mkdir -p ~/.ssh
确保权限正确:chmod 700 ~/.ssh
接着将之前上传的authorized_keys内容追加到~/.ssh/authorized_keys文件中:cat /tmp/authorized_keys >> ~/.ssh/authorized_keys
并设置适当的权限:chmod 600 ~/.ssh/authorized_keys
禁用密码登录(可选但推荐)
为了增强安全性,可以考虑禁用密码登录功能,只允许使用密钥认证。编辑/etc/ssh/sshd_config文件,找到PasswordAuthentication选项,将其设置为no:PasswordAuthentication no
完成后重启SSH服务使更改生效。
对于Ubuntu/Debian系统:sudo service ssh restart
对于CentOS/RHEL系统:sudo systemctl restart sshd
测试连接
最后一步是验证新的配置是否正常工作。尝试从本地计算机断开当前会话,然后再重新连接到服务器。如果一切顺利,你应该能够无需输入密码直接登录(前提是你之前选择了不设置passphrase)。如果有问题,检查前面步骤是否有遗漏或错误。
以上就是在Linux云服务器中设置安全的SSH密钥登录的过程。通过这种方式,你可以大大降低因弱密码而导致的安全风险,同时也简化了日常管理和维护工作。
本文由阿里云优惠网发布。发布者:编辑员。禁止采集与转载行为,违者必究。出处:https://aliyunyh.com/42501.html
其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。