1. 密码认证方式
使用SSH远程连接Linux服务器时,默认的认证方式是密码认证,这种方式存在一定的安全风险。为了加强安全性,可以通过以下命令来禁用密码认证:
sudo vi /etc/ssh/sshd_config
在打开的配置文件中找到以下行:
# PasswordAuthentication yes
将其改为:
PasswordAuthentication no
保存并关闭文件后,重新加载SSH服务:
sudo systemctl reload sshd
这样就禁用了密码认证,只允许使用密钥认证连接服务器,大大提高了安全性。
2. 密钥认证方式
密钥认证方式是一种基于公钥和私钥的认证方式,相对于密码认证更加安全。以下是使用SSH命令生成密钥对的步骤:
2.1 生成密钥对
在本地机器上使用以下命令生成密钥对:
ssh-keygen -t rsa -b 2048
按照提示一路回车即可生成密钥对。
2.2 上传公钥
将生成的公钥上传到Linux服务器上,可以使用以下命令将公钥上传到服务器的指定用户的.ssh目录下:
ssh-copy-id username@server_ip
其中,username是服务器上的用户名,server_ip是服务器的IP地址。
2.3 验证密钥认证
上传完公钥后,可以使用以下命令验证密钥认证方式是否生效:
ssh username@server_ip
如果成功连接到服务器,那么密钥认证方式已经生效。
3. 禁用root用户登录
为了增加服务器的安全性,应该禁用root用户直接登录服务器。以下为禁用root用户登录的步骤:
3.1 修改SSH配置文件
使用以下命令打开SSH配置文件:
sudo vi /etc/ssh/sshd_config
找到以下行:
#PermitRootLogin yes
将其改为:
PermitRootLogin no
3.2 重新加载SSH服务
保存并关闭文件后,重新加载SSH服务:
sudo systemctl reload sshd
这样就禁用了root用户直接登录服务器,需要使用其他用户登录后再切换到root用户。
4. 配置SSH端口
为了增加服务器的安全性,可以将SSH的默认端口22修改为其他端口,以下为配置SSH端口的步骤:
4.1 修改SSH配置文件
使用以下命令打开SSH配置文件:
sudo vi /etc/ssh/sshd_config
找到以下行:
#Port 22
将其改为:
Port 新端口号
其中,新端口号可以是任意未被占用的端口号。
4.2 重新加载SSH服务
保存并关闭文件后,重新加载SSH服务:
sudo systemctl reload sshd
这样就将SSH的端口号修改为了新的端口号。
5. 使用防火墙限制SSH访问
通过使用防火墙,可以限制允许访问SSH的IP地址范围,以下为使用iptables防火墙限制SSH访问的步骤:
5.1 安装iptables
如果尚未安装iptables,可以使用以下命令安装:
sudo apt-get install iptables
5.2 添加规则
使用以下命令添加允许访问SSH的IP地址范围:
sudo iptables -A INPUT -p tcp --dport 新端口号 -s 允许访问SSH的IP地址范围 -j ACCEPT
其中,新端口号是SSH的新端口号,允许访问SSH的IP地址范围是可以访问SSH的IP地址范围。
5.3 禁止其它IP地址访问SSH
使用以下命令禁止其它IP地址访问SSH:
sudo iptables -A INPUT -p tcp --dport 新端口号 -j DROP
保存并生效规则:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
5.4 重启防火墙
使用以下命令重启防火墙:
sudo systemctl restart iptables
这样就通过使用iptables防火墙限制了SSH的访问。
总结
通过使用以上的命令,可以加强Linux SSH命令的安全性。禁用密码认证、使用密钥认证、禁用root用户登录、配置SSH端口和使用防火墙限制SSH访问,可以提高服务器的安全性,防止未授权的访问。