0. 前言#
拿到一台全新的 Ubuntu 24.04 服务器(RackNerd 1核/1GB)后,第一步永远不是装软件,而是“关门”。本文记录了如何通过非对称加密实现免密登录,并完成初期的安全加固。
1. 核心原理:非对称密钥 (Asymmetric Encryption)#
SSH 免密登录的核心在于**“公钥锁门,私钥开锁”**。
- 公钥 (Public Key):存放在服务器的
authorized_keys中。它像一把打开的挂锁,谁都能看,但只能用来“锁住”信息。 - 私钥 (Private Key):保存在本地电脑(如我的 ThinkBook 16+)。它是唯一的钥匙,只有它能解开公钥锁住的信息。
2. 操作指南#
第一步:本地生成密钥对#
在本地终端执行:
# 推荐使用性能更优、更安全的 ed25519 算法
ssh-keygen -t ed25519注意:如果设置了 passphrase(私钥口令),每次使用私钥时都需要输入该口令以解锁私钥。
第二步:将公钥上传至服务器#
通过 FinalShell 等工具,将本地 ~/.ssh/id_ed25519.pub 中的内容完整复制到服务器的 /root/.ssh/authorized_keys 文件中。
第三步:修改 SSH 核心配置#
编辑 /etc/ssh/sshd_config:
- 修改端口:
Port 22334(避开默认端口,防御暴力扫描)。 - 开启密钥登录:
PubkeyAuthentication yes。 - 禁用密码登录:
PasswordAuthentication no。
3. 踩过的坑(Ubuntu 24.04 特辑)#
坑 1:修改端口后无法连接#
- 原因:Ubuntu 24.04 引入了
ssh.socket机制,默认接管了端口管理,导致直接修改sshd_config不生效。 - 对策:
systemctl disable --now ssh.socket
systemctl enable --now ssh.service
systemctl restart ssh坑 2:权限过于开放导致钥匙失效#
- 原因:SSH 有严格的“权限强迫症”,如果文件夹权限太高,它会认为不安全而拒绝工作。
- 对策:
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

