VPS公钥和私钥是如何工作的,它们有什么作用?
| 密钥类型 |
存储位置 |
主要功能 |
安全性要求 |
| 公钥 |
服务器端(~/.ssh/authorizedkeys) |
加密数据,验证身份 |
可公开 |
| 私钥 |
客户端本地 |
解密数据,身份认证 |
必须严格保密 |
VPS公钥私钥:从概念到实战的完整配置指南
在管理VPS服务器时,使用公钥私钥进行SSH登录是一种比传统密码更安全、更便捷的身份验证方式。
公钥私钥的基本概念
公钥和私钥是非对称加密技术中的核心组件。公钥用于加密数据,任何人都可以看到;私钥用于解密数据,只有密钥持有者才能访问。当客户端向服务器发起连接请求时,服务器使用公钥加密一个随机数据发送给客户端,只有持有对应私钥的客户端才能解密这个数据并返回给服务器,从而完成身份验证。
主要配置步骤概览
| 步骤 |
操作内容 |
使用工具 |
| 1 |
生成密钥对 |
ssh-keygen/PuTTYgen |
| 2 |
上传公钥到服务器 |
ssh-copy-id/手动上传 |
| 3 |
配置SSH服务 |
文本编辑器 |
| 4 |
测试密钥登录 |
SSH客户端 |
详细操作流程
步骤1:生成密钥对
操作说明:在本地计算机上生成RSA密钥对,包括公钥和私钥。
使用工具提示:
- Linux/macOS:使用OpenSSH的ssh-keygen命令
- Windows:使用PuTTYgen图形界面工具
代码块模拟工具界面:
# 在终端中执行以下命令
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/user/.ssh/idrsa):
Enter passphrase (empty for no passphrase):
Your identification has been saved in /home/user/.ssh/idrsa
Your public key has been saved in /home/user/.ssh/idrsa.pub
步骤2:上传公钥到服务器
操作说明:将生成的公钥文件内容添加到VPS服务器的授权密钥列表中。
使用工具提示:
- 自动上传:ssh-copy-id命令
- 手动上传:复制公钥内容到服务器的~/.ssh/authorizedkeys文件
代码块模拟工具界面:
# 使用ssh-copy-id自动上传
ssh-copy-id username@yourserverip
或者手动上传
cat ~/.ssh/idrsa.pub | ssh username@yourserverip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorizedkeys"
步骤3:配置SSH服务
操作说明:修改VPS上的SSH配置文件,启用密钥认证并可选择禁用密码登录。
使用工具提示:
- 配置文件路径:/etc/ssh/sshdconfig
- 重启SSH服务使配置生效
代码块模拟工具界面:
# 编辑SSH配置文件
sudo nano /etc/ssh/sshdconfig
确保以下配置项正确设置
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorizedkeys
可选:禁用密码登录增强安全性
PasswordAuthentication no
# 重启SSH服务
sudo systemctl restart sshd
步骤4:测试密钥登录
操作说明:使用私钥连接VPS服务器,验证配置是否成功。
使用工具提示:
- 连接命令:ssh -i /path/to/private/key username@serverip
代码块模拟工具界面:
# 测试SSH连接
ssh username@yourserverip
如果设置了密钥密码,会提示输入
Enter passphrase for key '/home/user/.ssh/idrsa':
常见问题及解决方案
| 问题 |
原因 |
解决方案 |
| 权限被拒绝(Permission denied) |
密钥文件权限设置过于开放 |
执行chmod 600 ~/.ssh/idrsa设置私钥权限 |
| 服务器拒绝密钥 |
公钥未正确添加到authorizedkeys文件 |
检查公钥内容是否完整,确认文件路径正确 |
| 仍然要求输入密码 |
SSH配置未正确启用密钥认证 |
检查/etc/ssh/sshdconfig中的PubkeyAuthentication设置 |
| 私钥格式不兼容 |
不同SSH客户端使用不同的密钥格式 |
使用PuTTYgen转换密钥格式或重新生成兼容密钥 |
使用公钥私钥进行VPS登录不仅提高了安全性,还能简化日常管理操作。通过正确的配置和维护,您可以建立一个既安全又高效的服务器访问环境。
发表评论