如何实现VPS无密码登录?
| 配置步骤 |
主要操作 |
所需工具 |
| 生成密钥对 |
创建SSH公钥和私钥 |
ssh-keygen |
| 上传公钥 |
将公钥复制到VPS |
ssh-copy-id |
| 配置SSH |
修改SSH配置文件 |
nano/vim |
| 测试连接 |
验证无密码登录 |
ssh |
| 禁用密码 |
关闭密码登录增强安全 |
nano/vim |
VPS无密码登录如何配置?完整SSH密钥认证设置教程
SSH密钥认证为VPS访问提供了比传统密码登录更安全、更便捷的方式。通过配置无密码登录,用户可以避免密码被暴力破解的风险,同时简化日常连接流程。
主要配置步骤概览
| 步骤序号 |
步骤名称 |
简要说明 |
| 1 |
生成SSH密钥对 |
在本地计算机创建公钥和私钥 |
| 2 |
上传公钥到VPS |
将公钥复制到服务器的授权文件中 |
| 3 |
配置SSH服务 |
调整SSH服务端设置以支持密钥认证 |
| 4 |
测试无密码登录 |
验证配置是否成功 |
| 5 |
禁用密码登录(可选) |
增强服务器安全性 |
详细操作流程
步骤1:生成SSH密钥对
操作说明:在本地计算机上生成RSA或Ed25519类型的SSH密钥对,包含公钥和私钥两个文件。
使用工具提示:使用系统自带的ssh-keygen命令,适用于Linux、macOS和Windows(WSL环境)。
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:
Your identification has been saved in /home/username/.ssh/idrsa
Your public key has been saved in /home/username/.ssh/idrsa.pub
The key fingerprint is:
SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz0123456789 youremail@example.com
步骤2:上传公钥到VPS
操作说明:将生成的公钥文件内容复制到VPS服务器的
~/.ssh/authorizedkeys文件中。
使用工具提示:使用ssh-copy-id工具自动完成公钥上传,或手动复制粘贴。
ssh-copy-id -i ~/.ssh/idrsa.pub username@yourvpsip
代码块模拟工具界面:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/idrsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
Number of key(s) added: 1
Now try logging into the machine with: "ssh username@yourvpsip"
步骤3:配置SSH服务
操作说明:修改VPS上的SSH服务配置文件,启用密钥认证并优化安全设置。
使用工具提示:使用文本编辑器如nano、vim或vi编辑SSH配置文件。
sudo nano /etc/ssh/sshdconfig
代码块模拟工具界面:
# 确保以下配置项正确设置
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorizedkeys
PasswordAuthentication no # 仅在确认密钥登录正常后修改
PermitRootLogin prohibit-password
修改完成后重启SSH服务:
sudo systemctl restart sshd
步骤4:测试无密码登录
操作说明:从本地计算机连接VPS,验证是否无需输入密码即可登录。
使用工具提示:使用ssh命令连接服务器,系统应直接建立连接而无需密码提示。
ssh username@yourvpsip
代码块模拟工具界面:
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-91-generic x8664)
Last login: Fri Oct 31 14:30:22 2025 from 192.168.1.100
username@vps-hostname:~$
常见问题与解决方案
| 问题 |
可能原因 |
解决方案 |
| 连接时仍要求输入密码 |
1. 公钥未正确上传2. 文件权限设置错误3. SELinux限制 |
1. 检查authorizedkeys文件内容2. 设置.ssh目录权限为700,authorizedkeys为6003. 临时禁用SELinux测试:setenforce 0 |
| “Permission denied”错误 |
1. 私钥权限过于开放2. 服务器SSH配置错误3. 防火墙阻止连接 |
1. 设置私钥权限:chmod 600 ~/.ssh/idrsa2. 检查sshdconfig中PubkeyAuthentication设置3. 确认防火墙允许SSH端口 |
| 服务器重启后无法连接 |
1. SSH服务未启动2. 磁盘空间不足3. 系统日志报错 |
1. 通过控制台登录检查SSH服务状态2. 清理磁盘空间3. 查看/var/log/auth.log获取详细信息 |
| 不同客户端连接问题 |
1. 密钥格式不兼容2. 客户端配置错误 |
1. 生成不同格式密钥:ssh-keygen -t ed255192. 检查客户端SSH配置文件和连接参数 |
| 密钥被拒绝 |
1. 服务器内存不足2. 认证超时3. 同时连接数限制 |
1. 释放服务器内存2. 增加客户端认证超时时间3. 检查服务器连接数限制设置 |
通过以上步骤,您可以成功配置VPS无密码登录,享受更安全、便捷的服务器管理体验。建议在完全确认密钥登录正常工作后再禁用密码认证,以防无法连接服务器。
发表评论