当我尝试从 Mac OS 客户端连接到 SSH 服务器时,以下命令会挂起。但是,它在 Linux 环境中运行良好。
$ ssh -vvv [email protected] -p 22
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /Users/myself/.ssh/config
debug1: /Users/myself/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "172.18.0.2" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 172.18.0.2 [172.18.0.2] port 22.
debug1: connect to address 172.18.0.2 port 22: Operation timed out
ssh: connect to host 172.18.0.2 port 22: Operation timed out
正如许多帖子所建议的那样,我取消了SSH_AUTH_SOCK
环境变量的设置,但什么都没有改变。SSH 服务器是一个 Docker 容器,端口暴露为0.0.0.0:2222->22/tcp
。"Gateway": "172.18.0.1", "IPAddress": "172.18.0.2"
如果有帮助,请参阅下面的容器的 SSH 和 SSHD 配置详细信息。
/etc/ssh/ssh_config
Host *
HashKnownHosts yes
GSSAPIAuthentication yes
/etc/ssh/sshd_config
ChallengeResponseAuthentication no
UsePAM no
PrintMotd no
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no
ForceCommand internal-sftp
我可以确认客户端操作系统上的 ssh-agent 正在运行。
$ ssh-agent
SSH_AUTH_SOCK=/var/folders/gw/89swycgx0gqg8g28nfr1x2r80000gn/T//ssh-dF9lR82eJulp/agent.59018; export SSH_AUTH_SOCK;
SSH_AGENT_PID=59019; export SSH_AGENT_PID;
echo Agent pid 59019;
这是问题的直观解释
答案1
这可能与故障的 XQuartz 有关。尝试在 ~/.ssh/config 中禁用主机的 X11 转发。我遇到了完全相同的问题,并将中的所有主机更改ForwardX11=yes
为。ForwardX11=no
~/.ssh/config
如果这解决了问题,请运行不带 X11 转发或修复 XQuartz。
这是我的错误:
debug2: client_x11_get_proto: /opt/X11/bin/xauth -f /var/folders/y4/lz_nnc_x7fzxxxkp6q_k7740000gn/T//ssh-KRdxxxxfMNmi/xauthfile generate /private/tmp/com.apple.launchd.oKxxxxYms3/org.macosforge.xquartz:0 MIT-MAGIC-COOKIE-1 untrusted timeout 1260 2>/dev/null