一、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登录,并且进行了一些基本的安全配置。在实际生产环境中,还需要根据具体的安全需求进行更加严格的安全配置,以保障系统安全。