如何禁止使用密码通过 ssh 连接远程服务器

原创
ithorizon 7个月前 (10-05) 阅读数 43 #Linux

怎样禁止使用密码通过 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私钥,避免泄露。

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门