您的位置:

Linux远程管理:开启SSH登录步骤详解

一、SSH是什么?

在了解如何开启SSH之前,我们需要了解一下SSH是什么。SSH(Secure Shell)是一种保证网络通讯安全的协议。常用于远程登录Linux系统,并且拥有加密传输的功能。开启SSH服务后,可以使用SSH客户端进行连接,远程管理Linux系统。

二、安装OpenSSH

在大多数Linux发行版中,OpenSSH都是默认安装好的。如果你的系统没有安装,你可以通过以下命令进行安装:

sudo apt-get install openssh-server     # Ubuntu/Debian
yum install openssh-server             # CentOS/RHEL

安装完成后,通过以下命令启动SSH服务:

sudo systemctl start sshd     # Ubuntu/Debian/CentOS/RHEL

如果你希望开机自动启动SSH服务,可以使用以下命令:

sudo systemctl enable sshd     # Ubuntu/Debian/CentOS/RHEL

三、配置SSH服务

1. 修改SSH端口号

默认情况下,SSH服务监听22端口。由于22端口是网络攻击者的常用目标,而且很容易受到暴力破解等攻击,因此我们可以将SSH服务端口修改为其他端口。例如修改为2222端口:

sudo sed -i 's/#Port 22/Port 2222/g' /etc/ssh/sshd_config     # Ubuntu/Debian/CentOS/RHEL
sudo systemctl restart sshd

这里我们使用sed命令对SSH配置文件进行修改。其中“s/”表示替换的命令,“#Port 22”表示需要替换的内容,后面的“Port 2222”表示替换后的内容,“/g”表示全局查找替换。修改完成后,需要重启SSH服务,使修改生效。

2. 禁止root用户登录

由于root用户权限过大,容易受到恶意攻击。因此,我们建议禁止root用户登录SSH。可以通过以下命令进行设置:

sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config     # Ubuntu/Debian/CentOS/RHEL
sudo systemctl restart sshd

其中,“PermitRootLogin yes”表示允许root用户登录,我们需要将其修改为“PermitRootLogin no”,表示禁止root用户登录。

3. 使用公钥认证

公钥认证是一种更加安全的SSH登录方式,可以代替传统的用户名和密码验证。下面介绍如何使用公钥认证。

1)生成公私钥对

首先,在本地计算机上生成公私钥对。可以使用以下命令:

ssh-keygen -t rsa -b 4096

其中,“-t rsa”表示使用RSA加密算法,“-b 4096”表示生成的密钥长度为4096位。根据提示输入文件名和密码即可。

2)复制公钥到服务器

生成公私钥对后,需要将公钥复制到服务器上。可以使用以下命令:

ssh-copy-id user@server-ip

其中,“user”是你在服务器上的用户名,“server-ip”则是服务器的IP地址。首次连接服务器时,会提示你输入服务器的密码。

3)使用公钥登录

将公钥复制到服务器后,下次登录SSH时,可以使用以下命令代替传统的用户名和密码登录:

ssh -i ~/.ssh/id_rsa user@server-ip

其中,“~/.ssh/id_rsa”表示你的私钥文件路径,需要根据实际情况修改。这样,就可以使用公钥认证登录SSH了。

四、防火墙配置

如果你的服务器有防火墙,还需要配置防火墙的规则,允许SSH服务通过。例如,CentOS/RHEL系统中可以使用以下命令添加防火墙规则:

sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent     # 将2222改为你实际使用的SSH端口号
sudo firewall-cmd --reload

其中,“--add-port=2222/tcp”表示添加SSH端口号为2222的规则。需要根据你实际使用的端口号进行修改。

五、总结

通过以上步骤,我们已经成功开启了SSH登录,并且进行了一些基本的安全配置。在实际生产环境中,还需要根据具体的安全需求进行更加严格的安全配置,以保障系统安全。