SSH 登录在 MacOS Sierra 中挂起,但在 Linux 环境中不会挂起

SSH 登录在 MacOS Sierra 中挂起,但在 Linux 环境中不会挂起

当我尝试从 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

相关内容