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环境)。
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无密码登录,享受更安全、便捷的服务器管理体验。建议在完全确认密钥登录正常工作后再禁用密码认证,以防无法连接服务器。

发表评论

评论列表