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 ssh
-
CentOS/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
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容