天天看點

VScode通過remote ssh連接配接虛拟機 & 報錯 過程試圖寫入的管道不存在(已解決)

       因為在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)

VScode通過remote ssh連接配接虛拟機 & 報錯 過程試圖寫入的管道不存在(已解決)
VScode通過remote ssh連接配接虛拟機 & 報錯 過程試圖寫入的管道不存在(已解決)
VScode通過remote ssh連接配接虛拟機 & 報錯 過程試圖寫入的管道不存在(已解決)
VScode通過remote ssh連接配接虛拟機 & 報錯 過程試圖寫入的管道不存在(已解決)

二、配置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啦!點選旁邊的小加号就可以開始遠端連接配接啦!美滋滋~

VScode通過remote ssh連接配接虛拟機 & 報錯 過程試圖寫入的管道不存在(已解決)

如果希望配置公鑰(ssh key)來實作無密碼登入,可以百度“ssh 公鑰登陸”。

解決辦法二:直接修改Windows的ssh的預設環境變量,解決git ssh和預設ssh的沖突

這是原本環境變量中路徑,将其删除

%SYSTEMROOT%\System32\OpenSSH\
           

 這是我電腦上git中ssh的路徑,添加到環境變量(Path)中

C:\Program Files\Git\usr\bin
           
VScode通過remote ssh連接配接虛拟機 & 報錯 過程試圖寫入的管道不存在(已解決)
VScode通過remote ssh連接配接虛拟機 & 報錯 過程試圖寫入的管道不存在(已解決)

然後再次打開vscode連接配接虛拟機成功

繼續閱讀