SuperAPI AI 工具集

ssh-doctor

部署与运维

查看项目

更新于 10-16 00:20

技能介绍

用途:面向 macOS 的 SSH 故障分诊,适用于 SSH 连接后在认证前即关闭、远程登录(Remote Login)显示已开启但无法使用,或需要诊断本地/远程 Mac SSH 的场景。

主要能力:通过本机回环测试区分服务端问题(sshd/launchd/配置)与网络/防火墙/监听路径问题;检查 systemsetup 远程登录状态、launchctl 中 com.openssh.sshd 状态、22 端口监听;查看 sshd 生效配置中的 AllowUsers/DenyUsers/ListenAddress/MaxStartups/LoginGraceTime 等可疑项;用 log show 检索 sshd 与 launchd 日志,识别“Connection closed by remote host”与“Too many processes”等 launchd 拒绝新建 inetd 实例的症状;检查应用防火墙与 pf 规则;在确认残留 sshd-session 阻塞新连接时按命令行匹配终止进程。

使用方式:优先使用非交互 SSH,如 ssh -o RequestTTY=no -o RemoteCommand=none HOST 'hostname; id -un';仅在密码回退会挂起或提示时使用 BatchMode=yes。查看日志示例:sudo log show --last 30m --predicate 'process == "sshd" OR process == "launchd"' --style compact | tail -160。检查监听:sudo lsof -nP -iTCP:22 -sTCP:LISTEN;回环验证:nc -vz 127.0.0.1 22。清理残留会话前先检查 active/copy count 与进程归属,终止使用 ps 匹配后 xargs sudo kill -TERM;若 TERM 无效,须先确认归属与活动 shell 再考虑 KILL。

限制与规则:不要打印密钥、令牌、完整环境变量或大范围密钥搜索输出;修改 /etc/ssh/sshd_config 前先报告可疑配置行;仅在本机回环成功而远程失败时才排查防火墙;涉及写入 ~/.profile 的 OP_SERVICE_ACCOUNT_TOKEN 时不得回显令牌,使用 chmod 600 临时文件中转。收尾需报告根因、实际修改的命令、脱敏后的验证输出,以及是否应重试远程连接。