如何设置和配置Linux的SSH远程登录

琴音袅袅 2021-11-14 ⋅ 24 阅读

介绍

SSH(Secure Shell)是一个网络协议,用于在不安全的网络中安全地远程登录和传输数据。Linux操作系统通常默认支持SSH远程登录,并且可以通过配置来增强安全性。本文将介绍如何设置和配置Linux的SSH远程登录。

步骤

1. 确认SSH是否已安装

在终端中输入以下命令来检查SSH是否已安装:

ssh -V

如果显示SSH的版本信息,则说明已安装。

2. 安装SSH(如果未安装)

如果在第1步中发现SSH未安装,可以通过以下命令来安装SSH:

对于Debian/Ubuntu系统:

sudo apt-get install openssh-server

对于CentOS/RHEL系统:

sudo yum install openssh-server

3. 修改SSH配置文件

SSH配置文件位于/etc/ssh/sshd_config。使用文本编辑器(如Nano或Vim)打开此文件:

sudo nano /etc/ssh/sshd_config

在打开的文件中,可以通过修改以下配置来调整SSH的设置:

设置SSH远程登录端口

默认情况下,SSH使用22号端口。为了增强安全性,可以修改为其他非常用端口。找到并修改以下行:

# Port 22

取消注释并将端口号修改为所需端口,例如:

Port 2222

保存并关闭文件。

禁用SSH密码登录

为了增加安全性,建议禁用通过密码登录SSH,而使用SSH密钥对进行身份验证。找到并修改以下行:

# PasswordAuthentication yes

取消注释并将yes改为no

PasswordAuthentication no

保存并关闭文件。

限制SSH登录的用户

如果只允许特定的用户登录SSH,则可以使用AllowUsers配置项。找到并修改以下行:

# AllowUsers user1 user2

取消注释并将user1user2改为所需用户的名称,例如:

AllowUsers john alice

保存并关闭文件。

4. 重启SSH服务

使用以下命令重启SSH服务以应用配置的更改:

对于Debian/Ubuntu系统:

sudo service ssh restart

对于CentOS/RHEL系统:

sudo systemctl restart sshd

5. 配置防火墙

如果启用了防火墙,需要配置以允许SSH远程登录的流量通过。使用以下命令开放所设置的SSH远程登录端口:

对于Debian/Ubuntu系统:

sudo ufw allow 2222

对于CentOS/RHEL系统:

sudo firewall-cmd --add-port=2222/tcp --permanent
sudo firewall-cmd --reload

6. 测试SSH远程登录

使用SSH客户端(如OpenSSH、PuTTY等)连接到远程Linux机器的IP地址和设置的SSH端口号。使用以下命令:

ssh username@remote_ip -p port_number

确保将username替换为具有SSH访问权限的用户名,remote_ip替换为远程Linux机器的IP地址,port_number替换为设置的SSH端口号。

如果一切设置正确,将提示输入SSH密钥的密码并成功连接到远程Linux机器。

结论

通过设置和配置Linux的SSH远程登录,可以提高远程访问的安全性。请记住,在配置远程访问之前,始终要考虑安全性,并且只应授予必要的权限。


全部评论: 0

    我有话说: