1. 为什么要使用密钥登录?
安全性极高: 密钥长度通常为 2048 位或更高,暴力破解几乎不可能。
免密体验: 配置好后,无需输入繁琐的密码,秒连服务器。
规避扫描: 配合禁用密码登录,可以无视全球黑客的 SSH 暴力破解尝试。
2. 核心流程图
私钥(Private Key):存放在你的本地电脑(FinalShell),相当于钥匙。
公钥(Public Key):存放在 VPS 的 root 家目录下,相当于锁。
3. 具体操作步骤
第一步:切换至 root 权限
如果你当前是以普通用户登录的,首先切换到 root 账户:
sudo -i
第二步:生成专属 root 的密钥对
在服务器上生成一对新的密钥(推荐使用更安全、更高效的 ed25519 算法):
ssh-keygen -t ed25519 -f /root/.ssh/id_root_key -C "vps_root_key"
提示输入密码时,连续按 回车 即可(不设置密钥锁)。
第三步:部署公钥(安装锁)
将生成的公钥内容写入 root 用户的授权名单,并设置严格的权限:
将公钥写入 authorized_keys
cat /root/.ssh/id_root_key.pub >> /root/.ssh/authorized_keys
设置权限(必须严格执行,否则 SSH 会因安全原因拒绝登录)
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
第四步:保存私钥(拿到钥匙)
你需要将服务器生成的“钥匙”文件内容保存到你的本地电脑:
运行:
cat /root/.ssh/id_root_key
完整复制 屏幕上显示的 -----BEGIN OPENSSH PRIVATE KEY----- 开头的内容。
在本地电脑新建文本文件(如 vps_root.key),粘贴并保存。
第五步:开启 SSH 配置
修改 SSH 服务配置文件,允许 root 使用密钥登录:
nano /etc/ssh/sshd_config
在文件中找到以下两行,去掉注释:
PermitRootLogin prohibit-password
PubkeyAuthentication yes
保存并退出后,重启 SSH 服务:
systemctl restart ssh
4. FinalShell 客户端配置
导入密钥: 点击 SSH 密钥管理器(钥匙图标)。
点击 添加 -> 导入,选择你本地的 vps_root.key 文件。
修改连接设置:
用户名: root
认证方式: 选择 公钥。
证书: 选择刚刚导入的密钥。
连接测试: 尝试连接 root 账号。
5. 彻底关闭密码登录
警告:请务必确认密钥登录成功后,再执行此步骤!
为了极致安全,你可以彻底禁止任何用户通过密码登录:
再次编辑 /etc/ssh/sshd_config。
设置 PasswordAuthentication no。
重启 SSH 服务。
评论区