VPS无密码登录如何配置?_完整SSH密钥认证设置教程
如何实现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环境)。
```bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```
**代码块模拟工具界面**:
```text
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa
Your public key has been saved in /home/username/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz0123456789 your_email@example.com
```
### 步骤2:上传公钥到VPS
**操作说明**:将生成的公钥文件内容复制到VPS服务器的`~/.ssh/authorized_keys`文件中。
**使用工具提示**:使用ssh-copy-id工具自动完成公钥上传,或手动复制粘贴。
```bash
ssh-copy-id -i ~/.ssh/id_rsa.pub username@your_vps_ip
```
**代码块模拟工具界面**:
```text
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/id_rsa.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@your_vps_ip"
```
### 步骤3:配置SSH服务
**操作说明**:修改VPS上的SSH服务配置文件,启用密钥认证并优化安全设置。
**使用工具提示**:使用文本编辑器如nano、vim或vi编辑SSH配置文件。
```bash
sudo nano /etc/ssh/sshd_config
```
**代码块模拟工具界面**:
```text
# 确保以下配置项正确设置
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no # 仅在确认密钥登录正常后修改
PermitRootLogin prohibit-password
```
修改完成后重启SSH服务:
```bash
sudo systemctl restart sshd
```
### 步骤4:测试无密码登录
**操作说明**:从本地计算机连接VPS,验证是否无需输入密码即可登录。
**使用工具提示**:使用ssh命令连接服务器,系统应直接建立连接而无需密码提示。
```bash
ssh username@your_vps_ip
```
**代码块模拟工具界面**:
```text
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-91-generic x86_64)
Last login: Fri Oct 31 14:30:22 2025 from 192.168.1.100
username@vps-hostname:~$
```
山西SEO自学必备:3个内链优化技巧揭秘,让你的网站排名飙升
## 常见问题与解决方案
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 连接时仍要求输入密码 | 1. 公钥未正确上传2. 文件权限设置错误3. SELinux限制 | 1. 检查authorized_keys文件内容2. 设置.ssh目录权限为700,authorized_keys为6003. 临时禁用SELinux测试:setenforce 0 |
| “Permission denied”错误 | 1. 私钥权限过于开放2. 服务器SSH配置错误3. 防火墙阻止连接 | 1. 设置私钥权限:chmod 600 ~/.ssh/id_rsa2. 检查sshd_config中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无密码登录,享受更安全、便捷的服务器管理体验。建议在完全确认密钥登录正常工作后再禁用密码认证,以防无法连接服务器。
发表评论