SSH密钥认证比密码认证更安全、更便捷。本文将介绍如何生成SSH密钥对并配置服务器。
生成SSH密钥
1 | ssh-keygen -t rsa -b 4096 -C "[email protected]" |
执行后会提示:
- 密钥保存位置(直接回车使用默认路径)
- 设置密码保护私钥(建议设置)
上传公钥到服务器
方法一:使用 ssh-copy-id(推荐)
1 | ssh-copy-id username@server_ip |
这个命令会自动将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。
方法二:手动复制
查看公钥内容:
1
cat ~/.ssh/id_rsa.pub
登录服务器并添加公钥:
1
2
3
4ssh username@server_ip
mkdir -p ~/.ssh
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
配置SSH服务器
编辑SSH配置文件:
1 | sudo nano /etc/ssh/sshd_config |
添加或修改以下配置:
1 | # 启用公钥认证 |
重启SSH服务:
1 | sudo systemctl restart ssh |
测试登录
1 | ssh username@server_ip |
如果配置正确,应该能够无密码登录服务器。
常见问题
权限问题
确保文件权限正确:
1 | chmod 700 ~/.ssh |
SSH服务重启问题
如果遇到 Unit sshd.service not found 错误:
1 | # 尝试不同的服务名 |