web-dev-qa-db-fra.com

Client SSH du sous-système d'exploitation Windows 10 Linux Ressource temporairement indisponible

J'essaie de SSH sur mon serveur distant dans le sous-système Windows 10 Linux. J'utilise MS Windows 10 Home Insider Preview build 14366.

À l'invite de commande, je tape:

ssh [email protected]

Quelques secondes après avoir tapé la commande ssh, le message suivant s'affiche:

ssh: se connecter au port 22 de l'hôte domain.com: ressource temporairement indisponible

Je parviens à me connecter à l’aide de PuTTY et de ssh dans Git Bash.

Cela me porte donc à croire que le problème se trouve sur mon ordinateur local et plus précisément dans le sous-système Linux. Je suis toujours très écologique avec l'environnement Linux et je ne sais pas comment interpréter ce message. Quelle ressource est indisponible et que dois-je faire pour la rendre disponible?

17
kell

Autant que je sache, il s'agit d'un bogue dans WSL. Espérons que Microsoft corrigera ce problème lors de la prochaine construction. Mais pour le moment, nous pouvons utiliser ce hack un peu moche.

Mise à jour # 1 : Certainement un bug. Trouvé ce problème sur Github. La solution de contournement proposée par Thier pour relancer Shell fonctionne également pour moi si vous ne voulez pas passer à travers tout cela.

TL; DR Ajoutez ceci pour METTRE FIN à votre configuration SSH (généralement située à ~/.ssh/config):

Host *
    ProxyCommand nc %h %p %r

Voici pourquoi cela fonctionne: Notre problème SSH n’est pas un problème de pare-feu car nc et telnet fonctionnent sur le même hôte et le même port (essayez telnet <Host> <port> ou nc <Host> <port>: vous devriez voir quelque chose comme SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7). Nous pouvons utiliser cela à notre avantage.

SSH permet l’utilisation de serveurs proxy utilisant l’entrée standard et l’envoyant au port du serveur via l’option ProxyCommand. Ceci est normalement utilisé pour créer un tunnel entre des réseaux vers un hôte protégé en utilisant un serveur SSH intermédiaire, parfois appelé hôte de saut (voir ce lien pour Plus d'informations).

Ce hack dit à SSH d'utiliser un proxy sans hôte (s) de saut. Donc, il résout l'allocation échouée de TCP ressources par SSH en poussant toute l'allocation de ressources réseau sur Netcat, ce qui fonctionne. SSH fait juste son travail SSH sans aucune connexion réseau, et Netcat envoie les données brutes via une connexion TCP au serveur SSH.

AVERTISSEMENT: étant donné que cela modifie la ProxyCommand pour tous les hôtes, je ne sais pas comment il interagit avec les autres hôtes de configuration SSH qui utilisent ProxyCommand. J'ai quelques serveurs avec lesquels je peux tester cela et je mettrai à jour cette réponse avec les résultats. Il y a une chance qu'il n'y ait aucun effet secondaire préjudiciable, mais je ne peux pas le garantir.

Mise à jour n ° 2: J'ai effectué des tests avec quelques-uns de mes serveurs et cela semble fonctionner. SSH utilise l'entrée la plus haute de la configuration lorsque plusieurs entrées s'appliquent. Ainsi, un ProxyCommand existant au-dessus de ce hack le remplacerait. Lorsque la nouvelle commande SSH est exécutée, elle relit la configuration SSH. S'il n'y a pas d'autre ProxyCommand, SSH utilise notre hack ProxyCommand, lui permettant de ne s'appliquer qu'à la session SSH "la plus à l'extérieur". Mot d'avertissement: si vous placez le hack en haut du fichier de configuration (ou au-dessus de l'entrée que vous essayez d'utiliser pour SSH), les sessions SSH qui nécessitent une ProxyCommand ignoreront l'autre ProxyCommand et tenteront plutôt de résoudre l'adresse de l'hôte. et connectez-vous directement avec Netcat.

7
computergeek125

C’était aussi un problème pour moi, c’était mon pare-feu (Symantec) qui bloquait tout le trafic Internet de bash.

Il semble que ce soit un problème général avec les fournisseurs de pare-feu tiers qui ne reconnaissent pas le processus:

https://github.com/Microsoft/BashOnWindows/issues/809

Lorsque j'ai désactivé mon pare-feu, cela a fonctionné correctement. Impossible de trouver une meilleure solution pour le moment.

3
Andrew Jones

Pour référence ultérieure, lorsque vous installez Nginx, SSH est bloqué par défaut avec le message d'erreur "Ressource temporairement indisponible", sauf si vous ...

Sudo ufw permettre ssh

0
andrerpena

Dans mon cas, j'ai eu cette erreur parce qu'une mise à jour de Windows a causé des problèmes avec mon commutateur Hyper-V . Il s'avère que l'hôte sur lequel je tentais de ssh était connecté à ce commutateur - le réparant ainsi ssh.

0