要在Linux上配置SSH安全连接,更新系统并安装OpenSSH。然后,创建非特权用户以避免使用root账户。修改`/etc/ssh/sshd_config`,禁用root登录(`PermitRootLogin no`),修改监听端口(如2222),并启用公钥认证(`PubkeyAuthentication yes`)。使用强密码或密钥对进行身份验证,并定期更新SSH软件以防止漏洞。最后,重启SSH服务。
安全性是至关重要的,SSH(Secure Shell)是一种用于加密远程登录和其他网络服务的协议,它提供了一条安全通道,通过不安全的网络进行数据传输。弱密码将介绍如何在 Linux 系统上配置 SSH 以确保其安全性。

1. 安装 OpenSSH
大多数 Linux 发行版默认都会安装 OpenSSH,但如果你的系统没有安装,可以通过包管理器来安装它。在 Debian/Ubuntu 系统上,你可以使用以下命令:
sudo apt update
sudo apt install openssh-server
对于 Red Hat/CentOS 用户,可以使用:
sudo yum install openssh-server
完成后,启动并启用 SSH 服务:
sudo systemctl start sshd
sudo systemctl enable sshd
2. 配置基本设置
打开 SSH 配置文件 /etc/ssh/sshd_config,你可以使用任何文本编辑器,例如 nano 或 vim:
sudo nano /etc/ssh/sshd_config
2.1 修改端口号
默认情况下,SSHD 运行在 22 端口。为了提高安全性,我们可以更改为其他较高的端口号。例如将其更改为 2222:
Port 2222
请记得防火墙也要允许新端口通过。
2.2 禁止 root 登录
直接以 root 身份登录存在很大的风险,因此建议禁用 root 账户远程访问。在配置文件中找到如下行,并修改为“no”:
PermitRootLogin no
2.3 使用公钥认证而非密码认证
公钥认证比密码更加安全。在客户端生成一对密钥(私钥和公钥),执行以下命令:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
按照提示操作,该命令会生成一个 RSA 类型的密钥对。
将公钥复制到服务器上,以便能够无密码地进行登录:
ssh-copy-id user@server_ip -p new_port_number
这里需要替换成实际用户名、服务器 IP 地址以及你之前设置的新端口号。
然后返回到 /etc/ssh/sshd_config 文件中,确保以下两项被正确设置:
PubkeyAuthentication yes
PasswordAuthentication no
这样就禁止了基于密码的验证,只能使用公钥进行验证。
3. 防火墙配置
需要确保防火墙允许新的 SSH 服务端口。如果你正在使用 UFW(Uncomplicated Firewall),则可以按如下方式添加规则:
如果还未启用 UFW,请先启用它:
sudo ufw enable
然后添加新规则:
sudo ufw allow 2222/tcp # 替换成你的自定义端口。
若想查看当前状态及已开放的端口,可以输入:
sudo ufw status verbose
对于 iptables 用户,你需要手动添加规则,如下所示:
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
别忘了保存 iptables 规则,以便重启后依然有效。
4. 限制访问来源 IP 地址
如果可能的话,为特定 IP 或 IP 段限制访问非常有必要。这不仅减少了暴力破解攻击,还能提升整体安全性。例如如果只希望来自 192.168.1.x 网段内机器能够连接,则可在 iptables 中增加如下规则:
sudo iptables -A INPUT -p tcp --dport <new_port> -s <allowed_ip>/24 -j ACCEPT
也要拒绝所有其他来源:
sudo iptables -A INPUT -p tcp --dport <new_port> !-s <allowed_ip>/24-j REJECT
同样不要忘记保存这些变化!
5. 启动率限制与防护机制
为了避免暴力破解攻击,我们可以利用 fail2ban 等工具来监控日志并自动阻止多次失败尝试者。首先安装 fail2ban:
sudo apt install fail2ban
成功安装后,其主要配置文件位于 /etc/fail2ban/jail.local ,我们需根据需求调整相应参数,包括最大尝试次数和封禁时长等信息。要特别注意针对 sshd 部分做出适当调整,使之生效即可。
例如:
[sshd]
enabled = true
port = <new_port_number>
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime =600
以上例子表示若某个 IP 地址连续五次失败登陆,会被暂时封锁 10 分钟(600 秒)。
总结
经过上述步骤,我们已经成功地加强了 Linux 上的 SSH 连接的安全性。从改变默认监听端口、禁止 root 用户登入,到采用更加可靠的方法如公共密匙认证,再到利用防火墙策略及监控工具,这些都是保护我们的服务器免受潜在威胁的重要措施。当然没有一种方法是万无一失的,因此定期检查和更新您的设定也是十分必要的一环!
并不断学习最新的信息技术动态,是维护良好计算机环境的重要途径!希望这篇指南能帮助您顺利实现一个更为稳定、安全且高效的远程管理体验!







川公网安备51062302000291号