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 扫描强度。
相关推荐
MAVER1CK3 小时前
Docker容器创建好后修改容器配置
运维·docker·容器
NightReader6 小时前
CPU 高使用率,怎么降下来
运维·服务器
SWAGGY..6 小时前
Linux系统编程:(七)Makefile入门:轻松掌握编译自动化
linux·运维·自动化
开开心心就好7 小时前
免费流畅的远程控制实用工具
linux·运维·服务器·网络·智能手机·excel
代码熬夜敲Q8 小时前
ENSP 网络工程实验
linux·运维·服务器
銳昊城8 小时前
项目七: 配置与管理Web服务器(2) C2
运维·服务器
Muyuan19988 小时前
30.通过Claude code做项目系统测试
运维·服务器·人工智能·fastapi
yyuuuzz9 小时前
aws的核心概念与常见使用场景
运维·服务器·网络·云计算·aws
KivenMitnick9 小时前
LovelyERes:AWD适用的蓝队综合工具
运维·安全·网络安全
赵药师9 小时前
dpkg: warning: files list file for package ‘libselinux1:amd64‘ missing;
linux·运维·服务器