SSH 密钥认证配置

使用 SSH 密钥认证比密码认证更安全,且可实现免密码登录。

生成密钥对

生成私钥

ssh-keygen -t rsa -b 4096

按提示输入保存路径和密码(可选)。建议使用高强度密码保护私钥。

支持的密钥类型:

  • rsa: 传统 RSA 密钥,兼容性好
  • ed25519: 新一代算法,更安全高效(推荐)

从私钥生成公钥

ssh-keygen -y -f ./<privateKey>.pem

配置服务器

添加公钥到 authorized_keys

echo <publicKey> >> ~/.ssh/authorized_keys

# 确保权限正确
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

启用公钥认证

编辑 /etc/ssh/sshd_config

PubkeyAuthentication yes

重启 SSH 服务:

systemctl restart sshd

使用密钥登录

ssh -i <privateKey> user@host

如果私钥有密码保护,会提示输入密码。

禁用密码登录(可选)

提高安全性,禁用密码认证:

# /etc/ssh/sshd_config
PasswordAuthentication no

SSH 配置文件简化登录

编辑 ~/.ssh/config

Host myserver
    HostName example.com
    User myuser
    IdentityFile ~/.ssh/mykey

之后可直接使用 ssh myserver 连接。

注意事项

  • 私钥必须妥善保管,不要泄露
  • 建议使用密码保护私钥
  • 定期检查 authorized_keys,移除不需要的公钥
  • 生产环境建议禁用密码登录