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

97voto

Aoerz Points 43

Ajouter le chemin de fichier absolu à un fichier de configuration SSH personnalisé( C:\Users\ {USERNAME} \.ssh\config ), et mon problème est résolu.

enter image description here

4 votes

En plus de cela, j'ai dû ajouter le nouvel hôte, puis m'y connecter. La simple connexion à l'hôte n'a pas fonctionné.

4 votes

Comment êtes-vous arrivé à cet écran de "remote ssh etc" montré dans votre réponse ?

9 votes

@yishairasowsky crtl+shift+p et entrez les paramètres de remote-ssh :.

39voto

Night Owl Points 171

Si vous formatez/réinstallez le système d'exploitation du serveur, mais utilisez la même adresse IP qu'avant, vous pouvez rencontrer des empreintes digitales non concordantes.

Vous devrez peut-être supprimer les anciennes empreintes digitales dans ce fichier : C:\Users\xxx.ssh\known_host

et l'ancienne IP dans le fichier : C:\Users\xxx.ssh\config

Ensuite, essayez à nouveau d'ajouter un hôte.

0 votes

C'est ce que vous devez faire !

1 votes

C'était ça... c'est fou que le message d'erreur ne donne aucun indice à ce sujet.

0 votes

J'ai réinstallé mon serveur et j'ai eu le message d'erreur de l'OP. Cela a réglé le problème.

8voto

Leonard AB Points 316

Ce qui a marché pour moi :

  1. supprimer le dossier ssh config à la fois dans C:\Program Data\ssh et C:\<user>\.ssh
  2. Dans VS Code, appuyez sur F1 choisissez Remote-SSH: Connect to Host...
  3. Ne saisissez RIEN dans l'invite, mais choisissez plutôt + Add New SSH Host..
  4. Entrez la commande ssh complète, y compris la clé (dans le cas de Windows, vous voudrez peut-être entourer le chemin d'accès de guillemets doubles) ssh -i "C:\path\to\key" user@host . (vous devez vous assurer que la clé a une permission limitée. Supprimez toutes les permissions héritées, et ne donnez un contrôle total qu'au propriétaire).
  5. Il vous sera demandé de choisir un dossier dans lequel un nouveau fichier de configuration sera créé. Choisissez l'une des deux options.
  6. Il y aura une invite notifiant que le nouveau fichier de configuration a été créé. Cliquez sur connect

6voto

dalilander Points 129

Ce qui a marché pour moi, c'est de supprimer tout le contenu du dossier : C:\Users\MYNAME.ssh Cela signifiait supprimer à la fois le fichier de configuration et les hôtes connus. Le fichier de configuration était probablement le plus important à supprimer.

3 votes

La suppression d'un répertoire ou d'un fichier de configuration entier est très représentative d'un comportement "je ne sais pas ce que je fais". Il vous suffisait de supprimer la ligne conflictuelle de known_hosts et bien sûr, avant cela, vérifiez que votre hôte distant n'a pas été usurpé d'identité.

0 votes

@NdFeB Quand il y a 10 réponses différentes et qu'aucune ne fonctionne, je suis sûr que personne ne sait ce qu'il fait. Ma solution a été de redémarrer mon ordinateur -__-''.

6voto

Goncalo Peres Points 1695

Il se passe au moins trois choses :

Option 1

L'emplacement de votre fichier de configuration n'est pas l'emplacement absolu, ce qui signifie que vous utilisez probablement l'emplacement du dossier où se trouve le fichier de configuration.

Si c'est le cas, accédez à vos paramètres utilisateur dans VSCode. Faites défiler jusqu'au Extensions > Remote - SSH . Et ajoutez config à la fin du chemin de fichier absolu de votre fichier de configuration SSH personnalisé. Sous Windows, il peut s'agir de

C:\Users\user\.ssh\config

Voir l'image ci-dessous

enter image description here


Option 2

Problèmes d'authentification.

Si c'est le cas, l'une des choses qui peut résoudre le problème est de générer de nouvelles clés SSH.

Sous Windows, pour cela, je recommande d'utiliser MobaXterm .

Dans MobaXterm, ouvrir un nouveau terminal et écrire

ssh-keygen -b 4096 -t rsa

Ensuite, dans le fichier de configuration, assurez-vous que l'élément IdentityFile indique l'emplacement de la clé. Le répertoire d'origine de MobaXterm est, en général, le suivant C:\Users\user\Documents\MobaXterm . Si cela peut faciliter les choses, on peut copier/déplacer les clés à C:\Users\user\.ssh et ensuite ajouter, dans le fichier de configuration, IdentityFile ~/.ssh/KEY_rsa (où KEY_rsa est le nom de la clé [publique]).

Notez que si vous utilisez PuTTY pour générer les clés, sur le fichier authorized_keys du serveur OpenSSH, on ne veut pas la clé publique que l'on enregistre, mais celle qui apparaît en haut (voir image ci-dessous) :

enter image description here


Option 3

Su config peut être erroné.

Le fichier de configuration a tendance à ressembler à ceci. Vérifiez que les champs contiennent les informations nécessaires à l'établissement de la connexion.

Host Test # This is the name we want to give the host
    User user # This is the username
    Hostname blabla.com # This is the hostname
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/KEY_rsa # This is the location of the key
    IdentitiesOnly yes
    Port 50    # This varies

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