如何配置SSH免密码登录VPS服务器?
| 步骤 |
操作内容 |
使用工具 |
关键文件 |
| 1 |
生成SSH密钥对 |
ssh-keygen |
~/.ssh/idrsa, ~/.ssh/idrsa.pub |
| 2 |
复制公钥到VPS |
ssh-copy-id |
~/.ssh/authorizedkeys |
| 3 |
配置SSH权限 |
chmod |
/etc/ssh/sshdconfig |
| 4 |
测试免密码登录 |
ssh |
- |
| 常见问题 |
可能原因 |
解决方案 |
|
| ———- |
———- |
———- |
|
| 权限错误 |
文件权限设置不当 |
设置正确权限:700/.ssh,600/authorizedkeys |
|
| 连接被拒绝 |
服务未启动或配置错误 |
重启SSH服务:systemctl restart sshd |
|
| 认证失败 |
密钥不匹配或配置问题 |
检查公钥是否正确复制到authorizedkeys |
|
如何实现SSH免密码登录VPS?
SSH免密码登录是通过公钥认证方式实现的,能够提高服务器管理的效率和安全性。下面详细介绍配置过程和常见问题处理。
主要操作步骤
| 步骤 |
操作说明 |
预计时间 |
| 1 |
在本地生成SSH密钥对 |
2分钟 |
| 2 |
将公钥上传到VPS服务器 |
1分钟 |
| 3 |
配置服务器SSH权限 |
3分钟 |
| 4 |
测试免密码登录 |
1分钟 |
详细操作流程
步骤一:生成SSH密钥对
操作说明:在本地计算机上生成RSA密钥对,包含私钥和公钥两个文件。
使用工具提示:使用ssh-keygen命令生成密钥,建议使用4096位长度提高安全性。
# 生成SSH密钥对
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):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/idrsa
Your public key has been saved in /home/user/.ssh/idrsa.pub
步骤二:复制公钥到VPS服务器
操作说明:将生成的公钥文件内容添加到VPS服务器的authorized
keys文件中。
使用工具提示:使用ssh-copy-id命令自动完成公钥复制,或手动复制公钥内容。
# 方法一:使用ssh-copy-id自动复制
ssh-copy-id -i ~/.ssh/id
rsa.pub username@vps
ipaddress
方法二:手动复制(当ssh-copy-id不可用时)
首先显示公钥内容
cat ~/.ssh/id
rsa.pub
然后在VPS上手动添加到authorized
keys
mkdir -p ~/.ssh
echo "公钥内容" >> ~/.ssh/authorized
keys
步骤三:配置服务器SSH权限
操作说明:确保VPS服务器上的相关文件和目录具有正确的权限设置。
使用工具提示:使用chmod命令设置权限,权限设置不当会导致认证失败。
# 登录到VPS服务器后执行以下命令
设置.ssh目录权限
chmod 700 ~/.ssh
设置authorized
keys文件权限
chmod 600 ~/.ssh/authorized
keys
可选:修改SSH配置文件提高安全性
sudo nano /etc/ssh/sshdconfig
确保以下配置项存在
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized
keys
重启SSH服务使配置生效
sudo systemctl restart sshd
步骤四:测试免密码登录
操作说明:从本地计算机尝试连接到VPS服务器,验证是否实现免密码登录。
使用工具提示:使用ssh命令连接,首次连接可能需要确认主机密钥。
# 测试SSH连接
ssh username@vps
ip
address
成功连接后的界面示例
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-42-generic x8664)
Last login: Fri Oct 31 21:15:32 2025 from your
localip
username@vps
hostname:~$
常见问题与解决方案
| 问题 |
原因 |
解决方案 |
| Permission denied (publickey) |
1. 私钥文件权限过宽2. authorizedkeys权限错误3. SELinux限制 |
1. chmod 600 ~/.ssh/idrsa2. chmod 600 ~/.ssh/authorizedkeys3. setenforce 0 或配置SELinux策略 |
| SSH连接超时 |
1. 防火墙阻止2. SSH服务未运行3. 网络问题 |
1. 检查防火墙规则2. systemctl status sshd3. 检查网络连接和IP地址 |
| 仍然要求输入密码 |
1. 公钥未正确复制2. 配置文件错误3. 路径问题 |
1. 重新复制公钥2. 检查sshd_config配置3. 确认使用绝对路径 |
| 服务器拒绝密钥 |
1. 密钥格式错误2. 用户目录权限问题3. 认证日志错误 |
1. 重新生成密钥2. 检查/home/username权限3. 查看/var/log/auth.log获取详细信息 |
| 连接后立即断开 |
1. shell配置问题2. 内存不足3. 资源限制 |
1. 检查.bashrc和.profile2. 检查系统资源3. 检查ulimit设置 |
通过以上步骤和问题解决方案,您可以成功配置SSH免密码登录VPS,提高服务器管理效率。如果在操作过程中遇到其他问题,建议查看系统日志获取更详细的错误信息。
发表评论