最有效、最可控的SSH加固方式是直接修改/etc/ssh/sshd_config,聚焦5个关键参数:禁用密码认证(PasswordAuthentication no)、禁止root登录(PermitRootLogin no)、修改默认端口(Port 22222)、启用空闲超时(ClientAliveInterval 300与ClientAliveCountMax 0)、强制SSHv2协议(Protocol 2),覆盖身份认证、访问控制、协议安全和会话管理四大维度。

直接改 /etc/ssh/sshd_config 是最有效、最可控的加固方式。重点不在堆砌参数,而在于选对那几个能立竿见影堵住主要攻击路径的关键项。下面这五个参数,覆盖了身份认证、访问控制、协议安全和会话管理四个核心维度,改完重启服务就能看到日志里暴力破解尝试明显减少。
禁用密码登录,强制密钥认证
密码是暴力破解的入口,再强的密码也扛不住自动化工具的轮番轰炸。密钥认证基于非对称加密,私钥不离手,公钥放服务器,基本无法被撞库。
- 确认你已用 SSH 密钥成功登录过目标服务器(这是前提,否则会把自己锁在外面)
- 编辑配置文件:
PasswordAuthentication no - 同时建议设为:
PubkeyAuthentication yes(确保开启,有些旧系统默认关) - 改完务必先 reload 或 restart 服务,并用新密钥重新连接验证
禁止 root 直接远程登录
root 是唯一固定用户名,攻击者不用猜账号,只爆破密码就行。关掉它,等于拆掉攻击者最省力的靶心。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 设置:
PermitRootLogin no - 如果业务确需 root 权限,可改为
PermitRootLogin prohibit-password,即只允许密钥登录,但不推荐 - 日常用普通用户登录,再用
sudo执行特权命令,既安全又留痕
修改默认端口并限制监听地址
22 端口是全网扫描器的“默认频道”,改端口不能防高手,但能过滤掉 90% 的脚本攻击和随机扫段流量。
- 选一个 1024–65535 之间的高位端口,例如:
Port 22222 - 若服务器有多个 IP(如内网+公网),只让 SSH 监听内网或特定公网 IP:
ListenAddress 192.168.10.5或ListenAddress 203.123.45.67 - 改端口前,必须在防火墙(iptables/firewalld)中放行新端口;改完后,再考虑是否关闭 22 端口的规则
启用连接空闲超时与失败次数限制
防止会话长期挂起占用资源,也增加爆破成本——每次失败都可能触发断连,打断攻击节奏。
- 设置心跳检测:
ClientAliveInterval 300(每 5 分钟发一次存活探测) - 设为立即断开:
ClientAliveCountMax 0(第一次探测无响应就断) - 限制单次连接内的错误尝试:
MaxAuthTries 3(输错三次密码或密钥无效即断连)
禁用 SSHv1 并指定加密算法
SSHv1 协议早已被证明存在设计缺陷,现代 OpenSSH 默认已禁用,但显式声明更稳妥;同时淘汰弱加密套件,避免降级攻击。
- 明确协议版本:
Protocol 2 - 精简并强化密钥交换与加密算法(可选但推荐):
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.comKexAlgorithms curve25519-sha256,ecdh-sha2-nistp256,diffie-hellman-group16-sha512 - 这些算法在主流客户端(OpenSSH 7.4+、PuTTY 0.76+)中均支持,兼容性没问题

















