SSH安全防护
1. 本地生成密钥
使用现代且高效的 ed25519 算法
ssh-keygen -t ed25519
2. 上传公钥
Debian 对权限要求严格,必须确保
.ssh目录为 700,authorized_keys为 600
mkdir -p ~/.ssh
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
3. 修改 SSH 配置
Debian 默认包含 drop-in 配置目录 /etc/ssh/sshd_config.d/,推荐新建独立配置文件或直接编辑主配置。
3.1 编辑配置文件
nano /etc/ssh/sshd_config
3.2 调整或添加以下核心参数
# 修改默认端口(建议选择 1024-65535 之间未占用的端口,例如 2222)
Port 2222
# 启用公钥认证
PubkeyAuthentication yes
# 禁用密码登录
PasswordAuthentication no
# 禁用空密码
PermitEmptyPasswords no
# 禁用键盘交互式认证
KbdInteractiveAuthentication no
3.3 检查配置文件语法是否正确
若命令无任何输出,说明语法配置正确
sshd -t
4. 防火墙放行新端口
如果未开启防火墙,跳过本步骤
4.1 UFW
sudo ufw allow 2222/tcp
sudo ufw reload
4.2 NFTables / IPTables
放行相应 2222 入站流量
4.3 云服务器安全组
如果使用的是腾讯云、阿里云、AWS 等云厂商服务器,务必在控制台的安全组规则中放行 TCP 2222 端口。
5. 重启 SSH 服务
systemctl restart ssh
6. 验证登录
在本地电脑新建一个终端测试新端口和密钥登录,不要关闭原连接窗口
ssh -p 2222 用户名@服务器IP