78 votes

Erreur de connexion à distance VScode : Le processus a essayé d'écrire sur un tuyau inexistant.

J'utilise vscode avec remote-ssh pour connecter mon serveur, après la configuration, je veux connecter mon hôte, mais cela échoue, la boîte de dialogue affiche : "could not establish connection to XX, The process tried to write to a nonexistent pipe".

sortie :

[16:45:20.916] Log Level: 3
[16:45:20.936] remote-ssh@0.49.0
[16:45:20.936] win32 x64
[16:45:20.944] SSH Resolver called for "ssh-remote+aliyun", attempt 1
[16:45:20.945] SSH Resolver called for host: aliyun
[16:45:20.945] Setting up SSH remote "aliyun"
[16:45:21.012] Using commit id "c47d83b293181d9be64f27ff093689e8e7aed054" and quality "stable" for server
[16:45:21.014] Install and start server if needed
[16:45:21.019] Checking ssh with "ssh -V"
[16:45:21.144] > OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
[16:45:21.214] Running script with connection command: ssh -T -D 5023 aliyun bash
[16:45:21.221] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[16:45:21.504] > 
> 
>
> ]0;C:\WINDOWS\System32\cmd.exe
[16:45:21.505] Got some output, clearing connection timeout
[16:45:21.577] > 
> 
>
> 
[16:45:21.592] > Bad owner or permissions on C:\\Users\\DY/.ssh/config
> 
[16:45:21.689] > The process tried to write to a nonexistent pipe.
> 
[16:45:22.091] "install" terminal command done
[16:45:22.092] Install terminal quit with output: The process tried to write to a nonexistent pipe.
[16:45:22.093] Received install output: The process tried to write to a nonexistent pipe.
[16:45:22.096] Resolver error: The process tried to write to a nonexistent pipe
[16:45:22.107] ------

0 votes

4voto

kaba11 Points 31

La solution dans mon cas a été de modifier le fichier de paramètres json pour VSC comme indiqué ici : https://code.visualstudio.com/docs/remote/troubleshooting#_troubleshooting-hanging-or-failing-connections Dans VSC, allez dans Fichier, Préférences, Paramètres et cliquez sur l'icône en haut à droite (Ouvrir les paramètres, JSON). Ajoutez ces deux lignes à settings.json et réessayez de vous connecter :

"remote.SSH.showLoginTerminal": true,
"remote.SSH.useLocalServer": false

3voto

David Kaftan Points 88

C'est probablement quelque chose que tout le monde a essayé avant de regarder ici, mais ça a marché pour moi. Le serveur auquel j'essayais de me connecter ne répondait pas, ce qui entraînait une erreur de pipe inexistant. J'ai redémarré le serveur et tout a fonctionné correctement.

3voto

mountrix Points 546

Dans mon cas, j'avais une autre configuration :

  • Git bash sous Windows a été configuré et j'utilise le ssh.exe fourni par cet outil.
  • Dans l'extension "Remote SSH" dans VSCode, j'ai spécifié le chemin complet de ce ssh.exe
  • J'utilise plusieurs serveurs (avec ProxyJump).
  • Le message d'erreur est le même que celui de l'OP mais dans les logs il est écrit que le fichier de configuration ssh n'a pas été trouvé, où tous les noms de dossiers ont été concaténés (parce qu'il ne reconnaît pas le séparateur de chemin de Windows).

Problème : ssh.exe utilise une convention de chemin d'accès différente de celle de VSCode. ssh.exe utilise le modèle "/c/Users/..." et VSCode utilise le modèle ". C:\Users... Modèle ".

Solution :

  1. Assurez-vous que la configuration SSH est à un endroit standard ( C:\Users\LOGIN\.ssh\config )
  2. Supprimer le chemin absolu du fichier de configuration dans les paramètres "Remote SSH" dans VSCode

VSCode sera toujours capable d'accéder aux paramètres en utilisant le chemin standard, et la configuration ssh.exe regardera toujours le même chemin standard pour que la connexion fonctionne.

Note :

J'ai l'erreur uniquement lorsque je me connecte à plusieurs serveurs ssh (en utilisant ProxyJump). Lorsque je me connecte uniquement au premier serveur, la solution de @pszrux et celle-ci fonctionnent toutes deux pour moi.

2voto

Système d'exploitation : Windows 10

Dans mon cas, il y avait des problèmes de permission. Le changement répété d'héritage dans Windows n'a pas résolu le problème. Finalement, ceci a fonctionné

changer le dossier dans lequel le fichier de configuration est stocké. À partir de C:/users/usr/.ssh/config à D:/config et modifié la configuration enter image description here dans les paramètres de vscode remote ssh.

Cela a marché pour moi.

2voto

zerzevul Points 103

Ce problème semble avoir des causes variées et des remèdes correspondants. Dans mon cas, le problème était lié à la version de ssh que j'utilisais. Dans mon chemin d'accès Windows, il y avait deux endroits où résidait une instance de ssh.exe :

C:\Program Files (x86)\OpenSSH\bin
C:\WINDOWS\System32\OpenSSH\

Après avoir utilisé les deux chemins pour définir le "Remote.SSH: Path" (qui se trouve dans "Remote.SSH: Settings" [voir ici ]), c'est-à-dire que le premier C:\Program Files (x86)\OpenSSH\bin\ssh.exe et ensuite C:\WINDOWS\System32\OpenSSH\ssh.exe le problème persiste.

Puis j'ai regardé ce et j'ai essayé le ssh.exe fourni par git, que j'avais déjà sur mon système (sinon, installez simplement git, c'est du bon matériel de toute façon :) )

Définir le paramètre du chemin d'accès SSH avec que a fait l'affaire pour moi, c'est-à-dire en définissant le chemin d'accès à :

C:\Program Files\Git\usr\bin\ssh.exe

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X