macOS 10.15.4 ssh没法链接解决办法

原文: macOS 10.15.4 ssh没法链接解决办法

今天早上醒来,发现Mac自动安装了最新版的macOS,也就是Catalina 10.15.4。上午用着挺好,没什么异常。下午登陆服务器,发现没法链接。用"-v"选项查看ssh链接调试信息,到"connecting"就不动了:node

OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/tlanyan/.ssh/config
debug1: /Users/tlanyan/.ssh/config line 20: Applying options for node1
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to node1 port 12345

上网查了一下,几天前就有人遇到这个问题。本人升级新系统较晚,所以今日才发现。git

通过本人组合测验,终于找到问题缘由所在,本文给出macOS 10.15.4 ssh没法链接解决办法。github

ssh没法链接解决办法

遇到一样问题又不想看废话的网友,请打开终端安装 openssh 以解决该问题:shell

# 未安装brew请先安装:
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install openssh

安装完后,打开一个新窗口,ssh -V 应该输出以下:macos

OpenSSH_8.2p1, OpenSSL 1.1.1f 31 Mar 2020

再用ssh链接服务器,会发现问题已经解决。浏览器

解决历程

刚发现ssh没法链接到服务器,内心一凉:服务器上托管着网站,不会服务器挂了吧?转念一想以为不可能,网站有监控呢,挂了确定会报警。浏览器打开网站,一切正常。可是返回iTerm2用ssh链接服务器,仍是不通。尝试其余几个服务器,状况同样。bash

想着会不会是设置了代理的问题?关掉代理软件,果真ssh正常链接到服务器。但不用代理软件是不可能的,为了找出缘由并解决,陆续作了以下尝试:服务器

  • 分别用iTerm2和系统自带终端,都不能链接,说明不是iTerm2的问题;
  • 查看环境变量,确认没有设置http_proxy等影响工做的环境变量;
  • 切换zsh和bash,问题依旧,说明和shell不要紧;
  • 切换代理软件PAC和全局模式,全局模式能正常链接,说明PAC的某个设置影响了ssh的正常工做;
  • PAC模式下用curl、wget、telnet等软件,工做正常,只有ssh工做异常;
  • 把主机名换成ip,能正常链接到服务器;
  • 把主机名换成域名,没法链接。

以上种种状况说明,升级到macOS 10.15.4后,ssh确实受到了影响,没法链接到主机别名、域名的服务器,ip方式则不受影响。ssh

ssh是系统内置软件,ssh -V 查看版本信息:curl

OpenSSH_8.1p1, LibreSSL 2.7.3

想着用brew安装openssh会不会好点呢?因而果断 brew install openssh,安装完后打开新终端,问题解决!

总结

升级到macOS 10.15.4后,以下两种状况的ssh使用不会受到影响:

  1. 用ip链接服务器的;
  2. 以前就已经用openssh客户端的。

若是你用着系统内置的ssh,并像我同样喜欢用别名或者域名链接服务器,安装openssh是问题的终极解决办法。固然,若是不嫌麻烦,链接的时候关闭代理也是出路。

参考

1. So, uh, I think Catalina 10.15.4 Broke SSH?

相关文章
相关标签/搜索