VScode通过remote ssh连接虚拟机 & 报错 过程试图写入的管道不存在(已解决)

2023-10-31

       因为在windows上VSCode使用的默认ssh工具存在实现上的问题 ,导致一旦我们直接使用默认ssh连接会有报错:”过程试图写入的管道不存在”(The process tried to write to a nonexistent pipe)。

那出现这样的问题我们有两种解决办法。

解决办法一:安装open ssh,并在设置ProxyCommand时使用安装好的openssh来进行连接。

配置步骤:

一、安装openssh

我会在后记部分解释为什么这步是必需的。我推荐直接通过windows的Powershell来安装:

  1. 以管理员身份运行window Powershell(windows键+x,然后选(A)),然后键入如下两条命令:

第一条命令:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

(这条是用来检测是否有适合安装的openssh软件,正常情况下应有如下返回:)

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

第二条命令:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

(这条是用来安装openssh软件,如果安装完成应有如下返回:)

Path          :
Online        : True
RestartNeeded : False

二、配置ssh config

配置ssh config来实现跳板机访问可以极大地简化我们的连接流程。

一、打开ssh config文件(远程资源管理器 -> SSH Targets -> Configure -> ssh config)

二、配置ssh config

假设你的跳板机的ip地址为A,目标机器的地址为B,那么在你的config中写下如下配置并保存:

Host JumpMachine
    # 跳板机的ip地址
    HostName A
    # 你跳板机的用户名
    User username
    # 跳板机登录端口 
    Port 22

Host TargetMachine
    # 目标机的ip地址
    HostName B
    # 你目标机的用户名
    User username
    # 目标机登录端口 
    Port 8080
    ProxyCommand "openssh的安装路径"\ssh.exe -W %h:%p JumpMachine

其中”openssh的安装路径”因人而异(我的openssh的安装路径为C:\Windows\System32\OpenSSH\ssh.exe)。

如果一切正常的话,此时你在SSH Targets里就可以找到TargetMachine啦!点击旁边的小加号就可以开始远程连接啦!美滋滋~

如果希望配置公钥(ssh key)来实现无密码登录,可以百度“ssh 公钥登陆”。

解决办法二:直接修改Windows的ssh的默认环境变量,解决git ssh和默认ssh的冲突

这是原本环境变量中路径,将其删除

%SYSTEMROOT%\System32\OpenSSH\

 这是我电脑上git中ssh的路径,添加到环境变量(Path)中

C:\Program Files\Git\usr\bin

image-20200328210138004

image-20200328210209859

然后再次打开vscode连接虚拟机成功

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VScode通过remote ssh连接虚拟机 & 报错 过程试图写入的管道不存在(已解决) 的相关文章

  • 剑指offer——剪绳子

    题目描述 给你一根长度为n的绳子 请把绳子剪成整数长的m段 m n都是整数 n gt 1并且m gt 1 每段绳子的长度记为k 0 k 1 k m 请问k 0 xk 1 x xk m 可能的最大乘积是多少 例如 当绳子的长度是8时 我们把它
  • Backtrader量化&回测5——交易情况跟踪&生成策略每日交易报告

    这一部分的API可以参考官网 https www backtrader com docu strategy Backtrader的策略中有四个常用的函数 notify order order 订单状态变化时会触发这个函数 notify tr
  • get请求传参 数组

    假设现在有数组arr 1 2 axios中如果直接使用数组传参 会出现参数中数组变成arr 1 arr 2的情况 实际上后端需要的是arr 1 arr 2的效果 这个时候可以使用axios里面的qs 导入 import qs from qs
  • 数据中心如何助力大数据、区块链、人工智能结合应用,推动数字经济发展?

    同属新基建重点点名发展的技术高地 大数据 区块链 人工智能之间有联系吗 数据中心如何承担技术底座的作用 以促进这些新兴技术的结合发展和应用 继而推动数字经济的发展 用人体来比喻 我们人类的各个器官感知世间万物的一切 大数据 经过人体经络 区
  • 2019年国赛高教杯数学建模E题薄利多销分析解题全过程文档及程序

    2019年国赛高教杯数学建模 E题 薄利多销分析 原题再现 薄利多销 是通过降低单位商品的利润来增加销售数量 从而使商家获得更多盈利的一种扩大销售的策略 对于需求富有弹性的商品来说 当该商品的价格下降时 如果需求量 从而销售量 增加的幅度大

随机推荐