如何禁止使用密码通过 ssh 连接远程服务器
原创怎样禁止使用密码通过 SSH 连接远程服务器
随着网络平安的日益重视,越来越多的用户和组织开端采用SSH(Secure Shell)协议来保障远程登录的平安性。然而,传统的基于密码的SSH登录做法仍然存在平安隐患。本文将详细介绍怎样通过配置SSH服务器来禁止使用密码,从而尽也许缩减损耗远程登录的平安性。
1. 生成SSH密钥对
首先,需要在本地生成一对SSH密钥对,包括公钥和私钥。以下是生成密钥对的基本步骤:
bash
# 生成密钥对
ssh-keygen -t rsa -b 2048
# 按提示输入文件保存路径和密码
生成的公钥文件默认保存在`~/.ssh/id_rsa.pub`,私钥文件默认保存在`~/.ssh/id_rsa`。
2. 将公钥复制到远程服务器
将本地生成的公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中。以下是复制公钥的基本步骤:
bash
# 登录远程服务器
ssh username@remote_server
# 将公钥复制到远程服务器
cat ~/.ssh/id_rsa.pub | ssh username@remote_server 'cat >> ~/.ssh/authorized_keys'
# 退出远程服务器
exit
如果远程服务器的`authorized_keys`文件已经存在,则可以将上述命令中的`>>`改为`>>>`,以追加公钥而不是覆盖原有内容。
3. 修改SSH配置文件
为了禁止使用密码登录,需要修改SSH配置文件`/etc/ssh/sshd_config`。以下是修改配置文件的基本步骤:
bash
# 打开SSH配置文件
sudo nano /etc/ssh/sshd_config
# 找到以下配置项,并确保它们设置为如下所示:
PasswordAuthentication no
PermitRootLogin no
# 保存并退出编辑器
其中,`PasswordAuthentication no`即禁止使用密码登录,`PermitRootLogin no`即禁止root用户登录。修改完成后,保存并退出编辑器。
4. 重启SSH服务
修改完SSH配置文件后,需要重启SSH服务以使修改生效。以下是重启SSH服务的基本步骤:
bash
# 重启SSH服务
sudo systemctl restart ssh
或者,可以使用以下命令:
bash
# 重启SSH服务
sudo service ssh restart
5. 验证SSH连接
现在,尝试使用SSH密钥对连接到远程服务器,以确保配置正确:
bash
# 使用SSH密钥对连接到远程服务器
ssh -i ~/.ssh/id_rsa username@remote_server
如果一切配置正确,您应该能够成就连接到远程服务器,而无需输入密码。
6. 注意事项
- 在生成密钥对时,建议为私钥设置密码,以增长平安性。
- 将公钥复制到远程服务器时,请确保使用正确的用户名和服务器地址。
- 修改SSH配置文件后,请务必重启SSH服务。
- 如果您需要使用root用户登录,请将`PermitRootLogin yes`添加到`sshd_config`文件中。
通过以上步骤,您已经成就禁止使用密码通过SSH连接远程服务器,从而尽也许缩减损耗了远程登录的平安性。在享受更平安的远程登录体验的同时,请务必保管好您的SSH私钥,避免泄露。