大学unix程序设计课上需要用到ssh连接服务器,新版本的macos不支持一些旧的不安全的交换密码协议。
我这边通过终端直接用ssh/fstp命令连接老师的服务器,会报错
Unable to negotiate with xxxxxxx port xxxx: no matching key exchange method found. Their offer: diffie-he11man-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
这边我在YouTube上找了方法,总结下来需要在ssh的config文件中进行修改,加上旧版本的一些ssh交换密码的协议(当然这样做是不安全的,如果能让服务器管理员更新最新的密码交换方式是最好的)
首先用该命令打开config文件
sudo nano /etc/ssh/ssh_config
会提示输密码,然后会进到下列页面
方向键控制光标移到最下面
最后三行是我们写入的东西,前两行照抄,最后一行我们是根据之前的报错来添加的,上面的报错文件有提到 their offer:xxxxxx(他们支持怎样的协议)我们把他们提供支持的协议按照最后一行的格式写进去即可
HostkeyAlgorithms +ssh-dss
PubkeyAcceptedKeyTypes +ssh-dss
KexAlgorithms +xxxxxxxxx(这里根据报错自行补充)
改好后使用control+X退出文稿,然后Y键保存,这个时候重新用终端ssh/sftp命令连接就行
这个时候我们成功连接上了服务器。