如何在VPS上添加公钥?VPS添加公钥的具体步骤是什么?为什么需要在VPS上配置公钥?
| 步骤 |
操作说明 |
使用工具 |
代码示例 |
| 1.生成SSH密钥对 |
在本地终端生成RSA或Ed25519密钥对 |
ssh-keygen命令 |
ssh-keygen -t rsa -b 4096 |
| 2.上传公钥到VPS |
将公钥内容追加到VPS的~/.ssh/authorizedkeys文件 |
ssh-copy-id或手动复制 |
ssh-copy-id user@vpsip |
| 3.配置SSH服务 |
修改VPS上SSH配置文件启用公钥认证 |
nano/vim编辑器 |
PubkeyAuthentication yes |
| 4.测试连接 |
使用私钥尝试SSH登录VPS |
ssh客户端 |
ssh -i ~/.ssh/idrsa user@vpsip |
VPS添加公钥的详细操作指南
为什么需要配置VPS公钥
使用公钥认证替代密码登录能显著提升VPS安全性,防止暴力破解攻击。公钥基于非对称加密原理,私钥保留在本地,即使公钥泄露也无法反向推导出私钥。
准备工作
- 确保拥有VPS的root或sudo权限
- 本地计算机已安装OpenSSH客户端(Linux/macOS默认自带,Windows需安装OpenSSH或WSL)
- 获取VPS的IP地址和登录凭证
详细操作步骤
1. 生成SSH密钥对
在本地终端执行以下命令生成密钥对(推荐使用4096位RSA或Ed25519算法):
ssh-keygen -t ed25519 -C "youremail@example.com"
按提示设置密钥保存路径(默认
~/.ssh/ided25519)和可选密码短语。生成后将得到两个文件:
ided25519(私钥,需严格保密)
ided25519.pub(公钥,需上传到VPS)
2. 上传公钥到VPS
有三种常用方法:
方法一:使用ssh-copy-id(推荐)
ssh-copy-id -i ~/.ssh/ided25519.pub user@vpsip
方法二:手动追加公钥
- 将公钥内容复制到剪贴板
- SSH登录VPS
- 执行:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "" >> ~/.ssh/authorizedkeys
chmod 600 ~/.ssh/authorizedkeys
方法三:使用SCP上传
scp ~/.ssh/ided25519.pub user@vpsip:~/
然后SSH到VPS手动处理公钥文件
3. 配置SSH服务
编辑VPS上的SSH配置文件:
sudo nano /etc/ssh/sshdconfig
确保包含以下配置:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorizedkeys
保存后重启SSH服务:
sudo systemctl restart sshd
4. 测试连接
断开当前SSH会话,使用私钥测试连接:
ssh -i ~/.ssh/ided25519 user@vpsip
首次连接需验证指纹,成功后应无需输入密码即可登录。
常见问题解决方案
| 问题现象 |
可能原因 |
解决方法 |
| 连接超时 |
VSSH服务未开启/防火墙阻止 |
检查sshd服务状态和防火墙规则 |
| 权限被拒绝 |
文件权限不正确 |
确保.ssh目录权限为700,authorizedkeys为600 |
| 无法使用密钥登录 |
SSH配置错误 |
检查sshdconfig中PubkeyAuthentication设置 |
| 连接被拒绝 |
用户不存在/SSH端口错误 |
确认用户名和端口号正确 |
| 密钥文件损坏 |
生成过程中断 |
重新生成密钥对并重复上传步骤 |
安全建议
- 为私钥设置强密码短语
- 定期轮换密钥对
- 限制VPS上允许登录的用户
- 考虑使用fail2ban等工具防止暴力破解
- 备份好私钥文件(建议使用密码管理器存储)
通过以上步骤,您已成功为VPS配置了更安全的公钥认证方式。这种登录方式不仅能提高安全性,还能避免每次输入密码的麻烦,特别适合自动化脚本和频繁登录的场景。
发表评论