V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ab
V2EX  ›  macOS

升级了 10.15.4 的同学,你们的 SSH 还能连接吗?

  •  4
     
  •   ab · 2020-03-26 10:19:37 +08:00 · 7595 次点击
    这是一个创建于 1729 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我这边 return 以后,只剩下一个光标在闪,5 分钟了

    57 条回复    2020-09-07 15:34:50 +08:00
    Xusually
        1
    Xusually  
       2020-03-26 10:22:30 +08:00
    昨天上班第一时间就升了,没有任何问题。
    Umenezumi
        2
    Umenezumi  
       2020-03-26 10:23:08 +08:00
    可以
    ab
        3
    ab  
    OP
       2020-03-26 10:27:17 +08:00
    @Xusually 两台一起升,试了另一个没问题,好尴尬。没升级之前一切好好的
    ab
        4
    ab  
    OP
       2020-03-26 11:26:11 +08:00   ❤️ 1
    关掉酸酸乳就可以了,打开 S 会有以下错误日志

    nw_endpoint_proxy_resolve_config_block_invoke [C1 Hostname#5f42da17:12580 in_progress proxy (satisfied (Path is satisfied), interface: en0, ipv4, dns)] nw_pac_resolver_create returned nil
    mianwei
        5
    mianwei  
       2020-03-26 11:52:22 +08:00
    我 MacBookPro16 升了,没楼主这个问题,但是我外接两个 4K@60HZ 显示器有一个泛白了。接 windows 正常,10.15.4 前也正常。。郁闷
    mschultz
        6
    mschultz  
       2020-03-26 12:19:19 +08:00
    @ab 果然,这是为啥啊。我用的是 V2RayX,也是这样。
    为啥更新了 10.15.4 之后 ssh 就受到 PAC 的影响了?
    onetown
        7
    onetown  
       2020-03-26 12:26:52 +08:00
    @mianwei 是因为 10.15.4 更新了显示器 HDR 设置, 默认打开了, 在 Display 把 High Dynamic Range 高动态范围关掉就行了。
    mschultz
        8
    mschultz  
       2020-03-26 12:46:40 +08:00
    我又仔细研究了我遇到的情况:
    连接 A:直接连接 VPS ;
    连接 B:通过 UCloud 的 GlobalSSH 服务连接服务器( https://www.v2ex.com/t/655548

    1. 开启 ShadowsocksX-NG-R,Whitelist 模式:A,B 均正常;
    2. 开启 V2RayX,PAC 模式(无论 gfwlist 或 whitelist ):A 正常,且 VPS 显示的登录 IP 是我家宽带的地址而不是代理的地址,说明没经过代理;但 B 无法连接,ssh -vvv 显示卡在 Connecting to x.x.x.x.ipssh.net port xxxxx 这步。
    3. V2RayX Manual Mode,A,B 均正常。
    4. V2RayX Global Mode,A,B 均正常。

    2 这种情况目前百思不得其解。主要是我开了酸酸乳也正常,所有情况下直连也正常,就 [V2RayX PAC + ucloud 服务] 这个组合出问题。
    看起来不太像 ssh 发生了变化,而是更新系统之后 PAC 网络配置这块发生了变化?
    mschultz
        9
    mschultz  
       2020-03-26 12:51:24 +08:00
    @mschultz #8 Update: ShadowsocksX-NG-R 的 Whitelist Mode 并不会修改系统 PAC 设置。而改成 PAC 之后,果然也出事了(但 ssh 直连也正常)。

    目前的情况就是:macOS 系统的设置 - 网络 - Proxies 里面,如果设置了 Automatic Proxy Configuration 设置了 PAC,那么连接 ucloud 的服务就会卡住。一般的 ssh 不受影响。

    这什么逻辑?
    mschultz
        10
    mschultz  
       2020-03-26 12:56:45 +08:00 via iPhone   ❤️ 1
    sorry 频繁 Update,我想应该把上面我写的“直连 SSH” 和“UCloud 服务” 改成“通过 IP 连接” 和 “通过域名连接”

    是 “系统开了 PAC + ssh 连接的是个域名而不是 IP” 就会连不上。

    和 Ucloud 服务没关系
    linvaux
        11
    linvaux  
       2020-03-26 13:55:06 +08:00
    阔以啊,没啥问题
    assimon
        12
    assimon  
       2020-03-26 14:02:11 +08:00 via iPhone
    有个 ssh 协议的 git 服务拉不下代码,一直在请求,其他 github 正常,目前还没找到原因,玄学
    mschultz
        13
    mschultz  
       2020-03-26 14:24:18 +08:00
    @mschultz #10 Update: Homebrew 安装的 openssh (版本 OpenSSH_8.2p1, OpenSSL 1.1.1d ) 没问题,系统自带的( OpenSSH_8.1p1, LibreSSL 2.7.3 )有问题。

    我现在暂时用 Homebrew 的作为 workaround 了。
    1002xin
        14
    1002xin  
       2020-03-26 14:27:14 +08:00
    没有问题,这种比较严重的 bug 如果出现肯定早炸锅了,建议先排查
    mschultz
        15
    mschultz  
       2020-03-26 14:50:37 +08:00
    @Xusually #1
    @Umenezumi #2
    @linvaux #11
    @1002xin #14

    请问你们是否使用梯子(如 ShadowsocksX-NG(-R)/V2RayX 等等),以及是否使用 PAC 模式?如果使用的话,我很想知道在符合下面的条件时能否复现我遇到的问题:

    1. macOS 10.15.4, 系统自带的 ssh (路径为 /usr/bin/ssh )
    2. 使用了梯子的 PAC 模式,即系统网络设置里 PAC 是打勾的,如图: https://i.loli.net/2020/03/26/tosuYPLnSACXe9h.png
    3. ssh 连接的是一个域名而不是 IP,如 ssh [email protected] 而不是 ssh [email protected]

    想知道在这种情况下能不能连上,看看我是不是个例。谢谢了!
    1002xin
        16
    1002xin  
       2020-03-26 15:00:15 +08:00   ❤️ 1
    @mschultz Surge iTerm2 Termius 均无问题
    Xusually
        17
    Xusually  
       2020-03-26 15:17:24 +08:00   ❤️ 1
    @mschultz
    刚给你测试了。
    我用的是 V2RayU,开着 PAC 模式。
    10.15.4,系统自带 ssh 。
    /usr/bin/ssh [email protected]
    完全没问题。
    mschultz
        18
    mschultz  
       2020-03-26 16:03:00 +08:00
    @Xusually #17

    @1002xin #16

    谢谢。这太诡异了,我现在能十分稳定地复现连接成功和不成功的情况,但我能力有限看不出到底是什么原理。
    mschultz
        19
    mschultz  
       2020-03-26 16:35:26 +08:00
    @ab #4

    擦,总结一下,我和楼主遇到了同样的问题,看到了 #4 同样的 log,百思不得其解(详情见楼上),重启了一下,好了。
    ab
        20
    ab  
    OP
       2020-03-26 17:39:59 +08:00 via iPhone
    @mschultz 或者直接用 iP,不要用域名也可以解决
    ab
        21
    ab  
    OP
       2020-03-26 17:44:36 +08:00 via iPhone
    @mschultz 你重启解决了吗?我还是不能用域名连接
    mschultz
        22
    mschultz  
       2020-03-26 17:45:07 +08:00
    @ab 然后我发现其实重启没用。

    直接用 IP 、用 homebrew 安装的 openssh 都可以暂时解决问题。
    但还是很纠结,为什么更新之后突然就变成这样了,楼上那几位同学为啥可以正常用。
    ab
        23
    ab  
    OP
       2020-03-26 17:56:54 +08:00
    @mschultz 我不用 PAC 了,酸酸用了 ALC 模式,目前先这样了。没再发现什么问题
    Umenezumi
        24
    Umenezumi  
       2020-03-26 19:06:14 +08:00
    @mschultz #15 帮你测了 没问题
    monsun
        25
    monsun  
       2020-03-26 21:43:39 +08:00
    @mschultz 我遇到了你这样的问题.. 今天一天都在虚拟机里面提交. 开了酸酸乳的 PAC 模式就完蛋, git 涉及远程的部分全部都是卡住, ssh -Tv 测试都是 connecting. 关掉酸酸乳 git 恢复正常. PS, 更新完 15.4, 本地安装的 nginx 也挂了...
    monsun
        26
    monsun  
       2020-03-26 23:11:14 +08:00
    @mschultz 我的 homebrew 也卡住了.. openssh 没法弄了...
    lululau
        27
    lululau  
       2020-03-26 23:21:35 +08:00
    ssh -vvv 再不行 dtrace 再不行扔了换新的
    mschultz
        28
    mschultz  
       2020-03-26 23:31:28 +08:00
    @lululau #27 ssh -vvv 的描述在 #8
    #4 的报错来自 ssh (libnetwork.dylib)
    这个贴里有 3 个人出现了类似的问题,说不定不是个例。
    大概是系统网络开了 PAC 时 ssh 的域名解析会出现问题。
    换新的折腾不起 [doge]
    mschultz
        29
    mschultz  
       2020-03-26 23:32:24 +08:00
    @monsun #26 全局代理 OK 不?
    monsun
        30
    monsun  
       2020-03-27 00:10:43 +08:00
    @mschultz 很奇怪, 开全局模式 /ACL 自动 ssh 测试都过了, 就 PAC 不行. 卡在 connecting 那里, 也不报错
    tpxcer
        31
    tpxcer  
       2020-03-27 00:26:59 +08:00 via iPhone
    ssh 域名换成 ip 可以了
    dadaslele
        32
    dadaslele  
       2020-03-27 01:11:16 +08:00
    我的也一直遇到这个问题,导致我的 SecureCRT 也没发用了,iTerm2 可以用,但是链接某些机器的时候非常的慢。觉得跟 ssh 的版本有关系,但是 brew 升级 ssh 和 ssl 到最新版本以后还是有这个问题,用-vvv 调试了,和之前的比较,双方协商使用 ssh 的版本不一样,rsa 的加密方式变了,其他的还没发现有什么问题,挺奇怪的问题。
    longfei210
        33
    longfei210  
       2020-03-27 01:40:15 +08:00
    检查系统代理设置,环境变量之类的
    elfsundae
        34
    elfsundae  
       2020-03-27 01:47:52 +08:00
    同样问题... brew install openssh 解决。
    xburnerair00
        35
    xburnerair00  
       2020-03-27 09:21:01 +08:00   ❤️ 1
    @mschultz
    我在使用域名且端口为非 22 的时候就会出现这个问题
    Binb
        36
    Binb  
       2020-03-27 09:26:00 +08:00
    没有任何问题。
    mschultz
        37
    mschultz  
       2020-03-27 09:48:04 +08:00
    @Binb
    在满足 #15 和 #35 的条件下,也没有任何问题吗?
    Binb
        38
    Binb  
       2020-03-27 09:57:45 +08:00
    没事的。
    mschultz
        39
    mschultz  
       2020-03-27 10:28:13 +08:00
    @xburnerair00 #35 感谢,还真是。
    我刚才试了一下 #15 楼的 3 个条件 + 默认 22 端口没有问题。
    这 3 个条件 + 非 22 端口会出现问题。
    由于我的大部分机器配置的不是 22 端口,所以没注意到这个条件。

    @Xusually #17 @1002xin #16 @Umenezumi #24 FYI.
    mschultz
        40
    mschultz  
       2020-03-27 10:36:57 +08:00
    而且这事和 PAC 具体是什么没有关系,只要系统开了 Automatic Proxy Configuration 就能触发,我放了这个 PAC 文件都可以:

    function FindProxyForURL(url, host) {
    return "DIRECT";
    }
    mikicomo
        41
    mikicomo  
       2020-03-27 11:02:13 +08:00
    @mschultz #40 我这里也遇到这个问题了,是的,一旦开启 pac,就会触发这个问题,关闭 Pac 就行,现在已经调成手动挡了
    Lenic
        42
    Lenic  
       2020-03-28 16:49:19 +08:00
    解决办法:

    1. 安装 OpenSSH:brew install openssh
    2. 在 ~/.zshrc 或者 ~/.bashrc 中添加配置:export PATH="/usr/local/sbin:$PATH"

    问题原因:安装了某工具,在系统层面上产生了「自动代理配置」导致。
    ab
        43
    ab  
    OP
       2020-03-28 16:51:43 +08:00 via iPhone
    呱呱叫
    Lenic
        44
    Lenic  
       2020-03-28 18:16:37 +08:00
    发现 Emacs 的 Magit 插件不能用了,按照 #42 的设置更新后不起作用,仍然卡住。
    kaishiqi
        45
    kaishiqi  
       2020-03-29 14:39:50 +08:00
    @Lenic 我刚发现我的 brew 就不能升级了,补充一下解决方法。

    cd "$(brew --repo)"
    git remote set-url origin git://mirrors.ustc.edu.cn/brew.git


    如果 homebrew-core 存在
    cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-core.git


    如果 homebrew-core 不存在
    git clone git://mirrors.ustc.edu.cn/homebrew-core.git/ /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1


    brew update
    kaishiqi
        46
    kaishiqi  
       2020-03-30 12:21:51 +08:00
    新发现,装了 openssh 后,命令行能用 git 了,sourcetree 依然还是必须要开全局才能用
    siyang1982
        47
    siyang1982  
       2020-04-11 00:13:53 +08:00
    遇到这个问题有段时间了,找到这里才有线索解决(之前没想到是 osx 更新问题)。
    问题情况是 ss 里打开 pac 模式后,git 就无法 pull/push (10022 端口)。
    测试连接发现卡在`Connecting to xxxxx port 10022`这里。

    解决方法是楼上说的:更新`openssh` (如`brew install openssh`)。

    我本机更新完后还是有个报错:`Bad configuration option: usekeychain`。是因为 ssh 用了 keychain 。网上搜了各种方法,最后还是`ssh-add -k ~/.ssh/id_rsa`,并删除`~/.ssh/config` 里相关行解决。
    abseilair
        48
    abseilair  
       2020-04-12 18:53:22 +08:00
    原来这个是升级之后的原因,我每次手动开关真的心累。我也遇到相同的问题,使用 PAC 模式之后无法连接,一直卡在 connecting to ... port ... 中。(我用的也不是默认的 22 端口)

    我也测试了大家说的两个方法,用 1. ip 直接连接以及 2. 使用 brew 安装的 openssh 。这两个方法都可以解决 ssh 连接的问题。

    此外,我一直在用 vscode 在写代码,vscode 有一个 remote ssh 插件(相当于通过 ssh 直接在远程的 vscode 工作?)。然后 vscode 一直是可以正常工作连接远程的。我不懂底层细节,可能 vscode 用的不是自带的 ssh 吧。

    还有一个就是我用灯笼的时候,发现 ssh 也是正常的。

    感谢这个帖子让我找到解决方案。
    xushengbin888
        49
    xushengbin888  
       2020-04-12 20:12:09 +08:00
    ```
    如果 homebrew-core 不存在
    git clone git://mirrors.ustc.edu.cn/homebrew-core.git/ /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1
    ```
    这一条回复,解决了我几个小时的问题。感谢感谢
    @kaishiqi
    mschultz
        50
    mschultz  
       2020-04-13 09:14:27 +08:00
    https://www.google.com/search?q=ssh+10.15.4

    估计石锤了是 10.15.4 的问题,一些英文帖子也提到了是 PAC 的问题,例如这个 https://openradar.appspot.com/FB7641404 下面第一个 comment.


    @1002xin #14 (根据上面的 Google 搜索结果,现在好像可以回复你「的确有点炸锅了😂」) @Xusually @Binb @Umenezumi 抱歉打扰,新发现的复现条件是 #15 楼的条件 加上:
    4. ssh 端口号大于 8192

    你们有兴趣可以看一下。
    twoyuan
        51
    twoyuan  
       2020-04-13 17:18:43 +08:00
    @mschultz #50 SSH 端口号大于 8192 应该不是必要条件,我这和楼上说的一样,非 22 端口就会出现
    bernardx
        52
    bernardx  
       2020-04-14 13:21:53 +08:00
    wangchonglie
        53
    wangchonglie  
       2020-04-25 02:44:18 +08:00
    一个忧伤的男孩在半夜找到了这个答案, 我以后再也不想更新了...
    zcw159357
        54
    zcw159357  
       2020-04-30 13:18:28 +08:00
    @bernardx 感谢 参考这个文章里的操作加了 connectTimeout 之后终于可以正常了
    douniwan5788
        55
    douniwan5788  
       2020-05-04 22:52:33 +08:00
    https://discussions.apple.com/thread/251226509
    跟代理没关系,把域名改成 IP 或加上 ConnectTimeout 就可以了,真是郁闷的 bug
    zhuziyi
        56
    zhuziyi  
       2020-05-16 16:13:53 +08:00
    一开始查服务器的问题,查了半天也没查出啥。

    系统:10.15.4
    终端:iTerm2

    我的症状:

    1 、

    执行 ssh [email protected] -p 65533 -vvv (即非默认 22 号端口)

    开启 ShadowsocksX-NG 的 PAC 模式,卡在 `debug1: Connecting to a.xip.io port 65533.` 这里。

    关闭 ShadowsocksX-NG (或全局模式)后,可成功连接。

    2 、

    执行 ssh [email protected] -p 22 -vvv (默认 22 号端口)

    开启 ShadowsocksX-NG 的 PAC 模式,成功连接。

    开启全局模式 ShadowsocksX-NG 后,被阻断,连接不成功。


    简而言之,
    开启 PAC 模式,使用默认的 22 号端口无影响,其他端口全部被阻断。
    开启全局模式, 使用默认的 22 号端口被阻断,其他端口可连接,十分怪异。

    ------------解决方案--------------

    目测是系统自带的 OpenSSH_8.1p1, LibreSSL 2.7.3 的问题。

    执行 brew install openssh 后,重启终端解决

    更新后为 OpenSSH_8.2p1, OpenSSL 1.1.1d 10 Sep 2019
    Lenic
        57
    Lenic  
       2020-09-07 15:34:50 +08:00
    再升级之后就没问题了,我现在是 10.15.6
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:41 · PVG 05:41 · LAX 13:41 · JFK 16:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.