前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ssh远程登录报错:kex_exchange_identification: Connection closed by remote host

ssh远程登录报错:kex_exchange_identification: Connection closed by remote host

原创
作者头像
拖拉飞机
发布2024-02-02 22:42:09
2.8K0
发布2024-02-02 22:42:09
举报
文章被收录于专栏:嘉钰踩坑实录嘉钰踩坑实录

基本信息

系统:MacOS Catalina 10.15.7

报错信息:

终端登录远程服务器时报错:

代码语言:javascript
复制
kex_exchange_identification: Connection closed by remote host

然而服务商的一键登录或VNC登录正常。

解决方案

首先使用以下命令debug登录过程,以便定位问题:

代码语言:javascript
复制
ssh -v <username>@<password>

如果你从此时返回的信息中能够发现大量的提示都指向:

代码语言:javascript
复制
debug1: identify file /Users/<ComputerName>/.ssh XXXXXX

基本上能够确定问题出现在本机的配置上。

此时需要打开Finder,而后通过文件访问路径

代码语言:javascript
复制
MacOS——Finder——【command+shift+G】
~/.ssh

找到known_hosts文件,将其清空,然后重新通过终端访问服务器主机。

果然顺利解决了问题,但这个known_hosts是个啥引起了我的注意,于是去查了一下,这里连同ssh登录一并写下。

SSH密钥登录

1、远程主机收到本地机的登录请求后会将自己的公钥发给本地机;

2、本地机使用这个公钥将密码加密后,发送回远程主机;

3、远程主机用自己的私钥解密登录密码,如果密码正确,则同意登录。

从MacOS的终端首次通过ssh登录远程主机时,会提示:

代码语言:javascript
复制
The authenticity of <hostname>'XXX.XXX.XXX.XXX' can't be established.
RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
Are you sure you want to continue connecting (yes/no)?

这里的意思是本地机无法确认远程主机的真实性,需要用户判断是否信任传来的RSA Key FingerPrint,键入yes后,接着就会提示:

代码语言:javascript
复制
Warning: Permanently added 'XXXX, XXX.XXX.XXX.XXX'(RSA)to the list of known hosts.

然后输入远程主机密码就可以正常登录了。

此时意味着本地机已经接受了远程主机,并且会将此公钥保存在/.ssh/known_hosts中,以便之后的验证。

ssh部分参考博客:https://www.cnblogs.com/wangjiyong/p/5210618.html

解决方案灵感来源:

知乎问题:https://www.zhihu.com/question/20023544
知乎问题:https://www.zhihu.com/question/20023544

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本信息
  • 解决方案
  • SSH密钥登录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档