生产环境建议优先使用密钥对登录,但在禁用密码前必须确保密钥登录已调通,避免被锁在门外。
先说结论:密钥对比密码更难被暴力破解,适合所有面向公网的 Linux 服务器。绑定密钥后通常无需重启实例,修改配置后需重启 SSH 服务。
- 先判断:确认当前实例是否支持绑定密钥,且本地已生成好密钥对。
- 优先做:在腾讯云控制台绑定密钥,并测试新密钥能否登录,成功后再关闭密码认证。
- 再验证:保留一个已登录的 SSH 会话不要关闭,直到新会话确认无误。
- 防锁死:修改配置前务必执行语法检查,并知晓 VNC 救援入口。
命令速用版
ssh-keygen -t rsa -b 4096
ssh -i ~/.ssh/id_rsa root@your_server_ip如果需要修改配置禁用密码(请先执行语法检查):
sudo vi /etc/ssh/sshd_config
# 确保以下项
PubkeyAuthentication yes
PasswordAuthentication no
# 保存退出后检查配置
sudo sshd -t
# 根据系统重启服务(CentOS 多为 sshd,Ubuntu 多为 ssh)
sudo systemctl restart sshd
# 或
sudo systemctl restart ssh为什么会这样
密码登录容易受到暴力破解攻击,尤其是 root 账户。密钥对使用非对称加密,私钥不在网络上传输,安全性远高于普通密码。腾讯云 CVM 支持在控制台直接绑定密钥,系统会自动将公钥写入服务器的 authorized_keys 文件,减少手动配置出错的可能。
分步处理
1. 生成密钥对:本地电脑运行 ssh-keygen,妥善保存私钥文件(如 id_rsa),权限设为 600。
2. 控制台绑定:登录腾讯云控制台,进入云服务器 CVM 实例列表,选中实例,点击“更多”-“密码/密钥”-“关联密钥对”。选择刚才创建的密钥,确认绑定。注意:绑定后通常无需重启实例,若未生效可尝试重启 SSH 服务而非实例。
3. 测试登录:打开一个新的终端窗口,使用 ssh -i 私钥路径 root@IP 尝试登录。切勿关闭当前已连接的密码登录会话。
4. 禁用密码:确认密钥登录成功后,编辑 /etc/ssh/sshd_config,将 PasswordAuthentication 设为 no。
5. 检查与重启:执行 sudo sshd -t 检查配置语法,无输出表示正确。随后执行 sudo systemctl restart sshd 或 sudo systemctl restart ssh。
怎么验证是否生效
尝试使用密码登录,系统应直接拒绝或提示 Permission denied。使用密钥登录应无需密码直接进入。查看 /var/log/secure 或 /var/log/auth.log,确认没有密码认证成功记录。
常见坑与救援
1. 私钥丢失:私钥一旦丢失无法找回,务必本地备份。腾讯云控制台只能重置密钥,不能找回旧私钥。
2. 权限错误:服务器端 ~/.ssh 目录权限应为 700,authorized_keys 应为 600,否则 SSH 会拒绝密钥登录。
3. 配置失误锁死:修改 sshd_config 前务必保留一个活跃会话。若配置错误导致服务启动失败,可通过腾讯云 VNC 登录救援:
- 进入腾讯云控制台 -> 云服务器 CVM -> 实例详情。
- 点击顶部“登录”按钮,选择“标准登录”或