ssh远程连接错误

1. 事件信息

  • 主机别名:<HOST_ALIAS>
  • 目标地址:<SERVER_PUBLIC_IP>:22
  • 客户端:Windows OpenSSH (OpenSSH_for_Windows_9.5p2)
  • 登录用户:<SSH_USER>
  • 私钥文件:C:\Users\<LOCAL_USER>\Downloads\<KEY_FILE>.pem

2. 故障现象

  • 本地 SSH 报错:
    • kex_exchange_identification: Connection closed by remote host
    • Connection closed by <SERVER_PUBLIC_IP> port 22
  • 服务器日志(/var/log/auth.log)出现:
    • Connection reset by authenticating user <SSH_USER> ... [preauth]

3. 排查结论

  • sshd 服务正常运行,22 端口正常监听。
  • ufw 已放行 22 端口。
  • fail2ban 未安装(fail2ban-client: command not found)。
  • 连接失败发生在 preauth 阶段,即尚未进入正常密钥认证流程。
  • 次要问题:私钥文件 ACL 过宽时,OpenSSH 会拒绝使用该私钥(后已修正权限)。

4. 根因判断

  • 22 端口对公网开放,扫描流量较多,触发 SSH preauth 阶段连接不稳定/被重置。
  • MaxStartups 默认阈值在高扫描场景下容易导致正常连接被丢弃。

5. 修复动作

5.1 调整 SSH preauth 并发阈值

bash 复制代码
printf "MaxStartups 100:30:200\nLoginGraceTime 20\n" | sudo tee /etc/ssh/sshd_config.d/99-tune.conf
sudo sshd -t && sudo systemctl restart ssh

5.2 收敛 22 端口来源(只允许当前公网 IP)

bash 复制代码
sudo ufw delete allow 22
sudo ufw allow from <YOUR_PUBLIC_IP> to any port 22 proto tcp
sudo ufw status

5.3 本地私钥权限修正(Windows)

  • 仅保留当前用户、AdministratorsSYSTEM.pem 的访问权限。

6. 结果

  • 执行以上动作后,SSH 恢复可用,ssh <HOST_ALIAS> 可正常连接。

7. 防复发建议

  • 长期保持 22 端口最小来源白名单,不建议 Anywhere 全开放。
  • 若公网 IP 会变,考虑:
    • 使用堡垒机 / WireGuard / Tailscale;
    • 或使用云厂商安全组动态白名单。
  • 保留 99-tune.conf,并定期复查 auth.log 扫描强度。
相关推荐
Lonely 净土9 小时前
Rocky Linux 安装教程
linux·运维·服务器
光影少年9 小时前
RN的Fabric 渲染流程
运维·前端·javascript·react native·react.js·fabric
A 糖醋排骨9 小时前
grafana loki alloy轻量级日志采集
运维·grafana·loki
林间码客12 小时前
从DevOps到DevSecOps:构建现代软件交付的基石与护城河
大数据·运维·devsecops·devops
Lust Dusk13 小时前
记一次Linux应急响应题目解析
linux·运维·服务器·网络·安全·网络安全
轻揉小乔 真新人14 小时前
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
运维·nginx·缓存
Yan_chen66615 小时前
SSH(Secure Shell)安全外壳协议详解
运维·网络协议·ssh
lingran__16 小时前
Linux 基础常用指令万字详解(上)|文件目录命令,结合底层原理剖析
linux·运维·服务器·后端·centos·linux基础指令
志栋智能16 小时前
安全超自动化如何增强事件响应能力
运维·安全·自动化
各类产品分享16 小时前
电力行业AR智能运维哪个品牌好
运维·ar·ar巡检