J'essaie de ssh dans 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:
Quelques secondes après avoir tapé la commande ssh, je reçois le message suivant:
ssh: se connecter à l'hôte domain.com port 22: ressource temporairement indisponible
J'ai réussi à me connecter en utilisant Putty ainsi qu'en utilisant ssh dans Git Bash.
Donc, cela m'amène à croire que le problème est sur mon PC local et plus spécifiquement dans le sous-système Linux. Je suis toujours très vert avec l'environnement Linux et je ne sais pas comment interpréter ce message. Quelle ressource n'est pas disponible et que dois-je faire pour la rendre disponible?
windows-10
bash
ssh
kell
la source
la source
git
andapt-get
Réponses:
Pour autant que je sache, il s'agit d'un bogue dans WSL. Espérons que Microsoft le corrigera dans la prochaine version. Mais pour l'instant, nous pouvons utiliser ce hack légèrement moche.
Mise à jour # 1 : définitivement un bug. Trouvé ce problème sur Github. Leur solution de contournement proposée pour relancer le shell fonctionne aussi pour moi si vous ne voulez pas passer par tout cela.
TL; DR Ajoutez ceci pour END votre configuration SSH (généralement situé à
~/.ssh/config
):Voici pourquoi cela fonctionne: Notre problème SSH n'est pas un problème de pare-feu car
nc
ettelnet
fonctionne sur le même hôte et le même port (essayeztelnet <host> <port>
ounc <host> <port>
: vous devriez voir quelque chose commeSSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.7
). Nous pouvons l'utiliser à notre avantage.SSH permet l'utilisation de proxys qui prennent une entrée standard et l'envoient au port du serveur via l'
ProxyCommand
option. Ceci est normalement utilisé pour créer des tunnels dans les réseaux vers un hôte protégé en utilisant un serveur SSH bastion intermédiaire, parfois appelé hôte de saut (voir ce lien pour plus d'informations).Ce hack indique à SSH d'utiliser un proxy sans hôte (s) de saut. Ainsi, il contourne l'échec de l'allocation des ressources TCP par SSH en poussant toute l'allocation des ressources réseau sur Netcat, ce qui fonctionne. SSH fait juste son truc SSH sans aucune connexion réseau, et Netcat envoie les données brutes via une connexion TCP au serveur SSH.
AVERTISSEMENT: comme cela modifie leProxyCommand
pour tous les hôtes, je ne sais pas comment il interagit avec les autres hôtes de configuration SSH qui utilisentProxyCommand
. J'ai quelques serveurs avec lesquels je peux tester cela, et je mettrai à jour cette réponse avec les résultats. Il est possible qu'il n'y ait aucun effet secondaire préjudiciable, mais je ne peux pas le garantir.Mise à jour # 2: j'ai fait quelques tests avec quelques-uns de mes serveurs, et cela semble fonctionner. SSH utilise l'entrée la plus élevée dans la configuration lorsque plusieurs entrées s'appliquent. Ainsi, un
ProxyCommand
présent existant au-dessus de ce hack l'emporterait. Lorsque la nouvelle commande SSH est exécutée, elle relit la configuration SSH, et s'il n'y en a pas d'autreProxyCommand
, SSH utilise notre hackProxyCommand
, lui permettant de ne s'appliquer qu'à la session SSH "la plus externe". Mot d'avertissement: si vous placez le hack en haut du fichier de configuration (ou au-dessus de l'entrée vers laquelle vous essayez de SSH), les sessions SSH qui nécessitent unProxyCommand
ignoreront l'autreProxyCommand
et tenteront plutôt de résoudre l'adresse de l'hôte et de se connecter directement avec Netcat.la source
vi ~/.ssh/config
ouvrir un fichier vide. J'ai collé vos commandes mais quand j'essaye de sauvegarder (esc ->: -> wq) ça me dit"~/.ssh/config" E212: Cannot open file for writing
ls -al ~/.ssh
?C'était aussi un problème pour moi, il s'est avéré que c'était mon pare-feu (Symantec) bloquant 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 bien fonctionné. Impossible de trouver une meilleure solution pour le moment.
la source
Dans mon cas, j'ai eu cette erreur car une mise à jour de Windows a causé des problèmes avec mon commutateur Hyper-V . Il s'avère que l'hôte auquel j'essayais de ssh était connecté à ce commutateur - le réparant ssh restauré.
la source
Pour référence future, lorsque vous installez Nginx, il bloquera SSH par défaut avec le message d'erreur "Ressource temporairement indisponible" sauf si vous ...
la source