我使用 SSH 在服务器上远程执行命令(Nagios 的模块 check_by_ssh)。但是 SSH 在尝试执行命令时不时挂起。我可以通过 SSH 登录到服务器,但不能执行简单的“ls”。它似乎阻止来自同一 IP 地址的所有客户端。身份验证不是问题,可能是通过 SSH 密钥或密码进行的。
ssh -l root -p 2222 server.domain.tld 'ls'
Run Code Online (Sandbox Code Playgroud)
这里是客户端调试信息
debug1: Entering interactive session.
debug2: callback start
debug2: client_session2_setup: id 0
debug1: Sending environment.
debug3: Ignored env ORBIT_SOCKETDIR
*** skipping approx 40 env var ignored
debug1: Sending command: ls
debug2: channel 0: request exec confirm 1
Run Code Online (Sandbox Code Playgroud)
它挂在那里。然后在随机时间后,它再次工作(不做任何事情)。杀死服务器上的所有 sshd 进程似乎也有效。它从腻子工作。我看到有些人因为 ISP 反向 DNS 问题而遇到这样的麻烦,但这里似乎并非如此。
它可以工作几个小时,然后不工作半小时左右。
什么可以解释这种行为?
编辑:似乎使用 -t 或 -T 选项,ssh 不会挂起,但我无法在 …
ssh ×1