如何通过SSH密钥对安全登录VPS服务器?
| 操作步骤 |
使用工具 |
关键要点 |
| 生成密钥对 |
ssh-keygen |
选择加密算法,设置密钥保护密码 |
| 上传公钥 |
ssh-copy-id/scp |
将公钥复制到服务器authorizedkeys文件 |
| 配置SSH |
文本编辑器 |
修改SSH配置文件增强安全性 |
| 测试登录 |
SSH客户端 |
验证密钥登录是否正常工作 |
| 禁用密码 |
文本编辑器 |
完成密钥配置后关闭密码登录 |
VPS密钥登录怎么操作?详细步骤教你安全连接
主要操作步骤概览
| 步骤 |
操作内容 |
所需工具 |
| 1 |
生成SSH密钥对 |
ssh-keygen |
| 2 |
上传公钥到VPS |
ssh-copy-id/scp |
| 3 |
配置SSH服务端 |
文本编辑器 |
| 4 |
测试密钥登录 |
SSH客户端 |
| 5 |
禁用密码登录 |
文本编辑器 |
详细操作流程
步骤1:生成SSH密钥对
操作说明:
在本地计算机上生成一对SSH密钥,包括私钥和公钥。私钥保留在本地,公钥上传到VPS服务器。
使用工具提示:
- Linux/macOS:使用终端
- Windows:使用PowerShell或WSL
代码块模拟工具界面:
# 生成RSA密钥对,长度为4096位
ssh-keygen -t rsa -b 4096 -C "youremail@example.com"
系统会提示以下信息
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/idrsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
步骤2:上传公钥到VPS
操作说明:
将生成的公钥文件复制到VPS服务器的 authorized
keys 文件中。
使用工具提示:
- ssh-copy-id(推荐,自动完成)
- scp(手动复制)
代码块模拟工具界面:
# 方法1:使用ssh-copy-id自动上传
ssh-copy-id -i ~/.ssh/id
rsa.pub username@your
serverip
方法2:手动复制公钥内容
cat ~/.ssh/id
rsa.pub
复制输出的公钥内容,然后在VPS上执行:
mkdir -p ~/.ssh
echo "粘贴的公钥内容" >> ~/.ssh/authorizedkeys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized
keys
步骤3:配置SSH服务端
操作说明:
修改VPS上的SSH配置文件,启用密钥认证并优化安全设置。
使用工具提示:
- 使用vim、nano等文本编辑器
- 需要root权限
代码块模拟工具界面:
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd
config
确保以下配置项正确设置
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized
keys
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
步骤4:测试密钥登录
操作说明:
重启SSH服务后,测试使用密钥登录VPS是否成功。
使用工具提示:
- 测试前确保公钥已正确上传
- 保持一个现有连接以防配置错误
代码块模拟工具界面:
# 重启SSH服务
sudo systemctl restart sshd
从新终端测试登录
ssh -i ~/.ssh/id
rsa username@your
serverip
如果设置了密钥密码,会提示输入
Enter passphrase for key '/home/username/.ssh/id
rsa':
步骤5:禁用密码登录
操作说明:
确认密钥登录正常工作后,彻底禁用密码登录以提高安全性。
使用工具提示:
- 再次编辑SSH配置文件
- 谨慎操作,确保密钥登录可用
代码块模拟工具界面:
# 确认密钥登录正常后,禁用密码登录
sudo nano /etc/ssh/sshd
config
修改以下配置
PasswordAuthentication no
UsePAM no
重启SSH服务生效
sudo systemctl restart sshd
常见问题与解决方案
| 问题 |
原因 |
解决方案 |
| 权限被拒绝 (Permission denied) |
.ssh目录或文件权限设置错误 |
执行:chmod 700 ~/.ssh 和 chmod 600 ~/.ssh/authorizedkeys |
| 密钥格式不正确 |
公钥内容损坏或格式错误 |
重新生成密钥对或检查公钥文件完整性 |
| 连接超时 |
防火墙阻止SSH连接或IP地址错误 |
检查防火墙设置和服务器IP地址,确认SSH端口开放 |
| 服务器拒绝密钥 |
服务器未启用密钥认证或配置错误 |
检查sshdconfig中PubkeyAuthentication是否为yes |
| 忘记密钥密码 |
设置密钥时添加了密码保护 |
使用ssh-keygen -p命令更改密码,或重新生成无密码密钥 |
通过以上步骤,您可以成功配置VPS的密钥登录方式,显著提升服务器的安全性。密钥登录不仅比密码更安全,还能简化日常的登录操作。
发表评论