VPS如何禁用密码登录?_详细步骤与常见问题解答

如何安全地禁止VPS密码登录?

操作步骤 主要内容 相关工具
生成SSH密钥对 在本地计算机创建公钥和私钥 ssh-keygen命令
上传公钥到VPS 将公钥添加到服务器的授权文件中 ssh-copy-id命令或手动上传
配置SSH服务 修改sshdconfig文件禁用密码登录 vi/vim编辑器
重启SSH服务 使配置生效 systemctl命令

VPS如何禁用密码登录?详细步骤与常见问题解答

主要操作步骤

步骤 操作内容 所需工具
1 生成SSH密钥对 ssh-keygen命令
2 上传公钥到服务器 ssh-copy-id命令
3 配置SSH服务参数 文本编辑器
4 重启SSH服务 系统服务管理命令

详细操作流程

步骤一:生成SSH密钥对

操作说明:在本地计算机上生成RSA密钥对,包括公钥和私钥。 使用工具提示:使用终端或命令行工具执行ssh-keygen命令。
# 生成4096位的RSA密钥对
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/id
rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:

步骤二:上传公钥到VPS

操作说明:将生成的公钥上传到VPS的授权密钥文件中。 使用工具提示:使用ssh-copy-id命令或手动上传。
# 使用ssh-copy-id自动上传
ssh-copy-id -i ~/.ssh/idrsa.pub username@yourserverip

或者手动操作:

1. 在服务器上创建.ssh目录(如果不存在)

mkdir -p ~/.ssh

2. 设置正确的目录权限

chmod 700 ~/.ssh

3. 将公钥内容添加到authorizedkeys文件

echo "ssh-rsa AAAA..." >> ~/.ssh/authorizedkeys

4. 设置正确的文件权限

chmod 600 ~/.ssh/authorized
keys

步骤三:配置SSH服务参数

操作说明:修改SSH服务的配置文件,禁用密码登录并启用密钥认证。 使用工具提示:使用vi、vim或nano等文本编辑器。
# 编辑SSH配置文件
sudo vi /etc/ssh/sshdconfig

需要修改的关键参数:

PasswordAuthentication no PubkeyAuthentication yes PermitRootLogin without-password

步骤四:重启SSH服务

操作说明:重新启动SSH服务使配置生效。 使用工具提示:使用systemctl或service命令。
# CentOS 7/8, Ubuntu 16.04+
sudo systemctl restart sshd

CentOS 6

sudo service sshd restart

常见问题及解决方案

问题 原因 解决方案
SSH连接被拒绝,无法登录 密钥文件权限设置不正确 检查.ssh目录权限为700,authorizedkeys文件权限为600
修改配置后无法连接VPS 配置文件语法错误或参数设置错误 保持一个活跃的SSH连接,逐步测试配置
公钥认证失败 服务器未正确识别公钥 确认公钥已正确添加到authorized_keys文件
忘记设置密钥密码 生成密钥时未设置密码 重新生成密钥对并设置密码
主机密钥验证失败 服务器密钥发生变化 使用ssh-keygen -R命令删除旧密钥记录

完成以上步骤后,你的VPS将只允许通过SSH密钥进行登录,大大提高了服务器的安全性。在进行最终配置前,建议先测试密钥登录是否正常工作,确保不会因为配置错误而失去对服务器的访问权限。

发表评论

评论列表