1. 生成 SSH 密钥对
生成 SSH 密钥对时,确保使用强密码保护私钥。
生成 RSA 密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"按提示输入保存密钥的文件路径和密码。
生成 Ed25519 密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"按提示输入保存密钥的文件路径和密码。
2. 保护私钥
确保私钥文件的权限设置正确,防止未授权访问。
检查私钥文件权限:
ls -l ~/.ssh/id_rsa确保文件权限为
600:chmod 600 ~/.ssh/id_rsa使用 ssh-agent 管理私钥:
使用
ssh-agent可以简化私钥的使用,避免每次连接时都需要输入密码。启动 ssh-agent:
eval "$(ssh-agent -s)"添加私钥到 ssh-agent:
ssh-add ~/.ssh/id_rsa
3. 配置公钥认证
将公钥添加到目标主机的 ~/.ssh/authorized_keys 文件中,启用公钥认证。
复制公钥到目标主机:
使用
ssh-copy-id命令将公钥复制到目标主机:ssh-copy-id user@target_host手动添加公钥:
将公钥内容复制到目标主机的
~/.ssh/authorized_keys文件中:cat ~/.ssh/id_rsa.pub | ssh user@target_host "cat >> ~/.ssh/authorized_keys"
4. 禁用密码认证
为了提高安全性,建议禁用密码认证,仅使用公钥认证。
编辑 SSH 配置文件:
编辑
/etc/ssh/sshd_config文件,禁用密码认证:PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no重启 SSH 服务:
重启 SSH 服务以应用更改:
Debian/Ubuntu:
sudo systemctl restart sshCentOS/RHEL:
sudo systemctl restart sshd
5. 定期轮换 SSH 密钥
定期轮换 SSH 密钥可以减少长期使用同一密钥带来的安全风险。
生成新的密钥对:
按照上述步骤生成新的 SSH 密钥对。
更新目标主机上的公钥:
将新的公钥添加到目标主机的
~/.ssh/authorized_keys文件中,然后删除旧的公钥。cat ~/.ssh/new_id_rsa.pub | ssh user@target_host "cat >> ~/.ssh/authorized_keys" ssh user@target_host "sed -i '/old_public_key/d' ~/.ssh/authorized_keys"更新本地私钥:
删除旧的私钥文件,使用新的私钥文件。
rm ~/.ssh/id_rsa mv ~/.ssh/new_id_rsa ~/.ssh/id_rsa
此处评论已关闭