Vscode ssh远程连接失败解决办法

问题描述:

Vscode 通过remote - ssh连接远程ubuntu时出现"192.168.x.x" has fingerprint “SHA256:…”,如下图所示:
在这里插入图片描述
按照提示选择“continue”,然后输入正确密码却显示Permission Denied(以往连接都很顺利,没有出现过问题)
在这里插入图片描述
尝试根据报错提示找到解决问题的办法:
  从输出的错误提示显示似乎是无法添加信息到用户目录的.ssh/konwn_hosts文件中。通过查询了解了一下这个文件的作用:ssh会把你每个你访问过计算机的公钥(public key)都记录在 ~/.ssh/known_hosts。

  接着直接打开这个文件查看后里面发现里面记录了以前连接成功过的一些ubuntu主机的公钥,但确实没有关于我要访问的这个ip的公钥。于是继续搜索解决方法,按照网上有些博客说的:将.ssh/known_hosts文件删除然后重新连接,结果还是没有解决问题。

  还有博客说是拒接连接可能是因为.ssh文件夹的权限问题,要将远程主机的ssh文件夹权限改为755或者700,修改权限命令:

cd /etc
sudo chmod 755 ssh

按照这个方法修改后依旧无法连接成功

  最终发现是环境配置的问题,本机同时装有openssh和git时,就会引起环境冲突,因为git本身自带了ssh。可以在git bash中输入 where ssh 查询是否同时装有openssh和git
在这里插入图片描述
解决办法:
  修改Vscode的默认ssh命令路径,改成git自带的ssh路径。打开Vscode,点击左下角管理->设置,搜索remote ssh Default Forwarded Ports,点击 在settings.json中编辑
在这里插入图片描述
在文件中添加一条设置,指定ssh的默认路径为Git下的ssh

 "remote.SSH.path": "(你的Git安装路径)\\usr\\bin\\ssh.exe"

在这里插入图片描述
修改完重新测试就成功连接了。