Erreur Git SSH: «Se connecter à l’hôte: numéro de fichier incorrect»

J’ai suivi le guide git mais j’ai ce problème étrange en essayant de me connecter à github:

$ ssh -v git@github.com OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Reading configuration data /c/Documents and Settings/mugues/.ssh/config debug1: Applying options for github.com debug1: Connecting to github.com [207.97.227.239] port 22. debug1: connect to address 207.97.227.239 port 22: Attempt to connect timed out without establishing a connection ssh: connect to host github.com port 22: Bad file number 

Ceci est mon fichier de configuration sous .ssh

 Host github.com User git Hostname github.com PreferredAuthentications publickey IdentityFile "C:\Documents and Settings\mugues\.ssh\id_rsa" TCPKeepAlive yes IdentitiesOnly yes 

Une idée?

Après avoir eu ce problème moi-même, j’ai trouvé une solution de travail pour moi.

Message d’erreur:

  ssh -v git@github.com OpenSSH_5.8p1, OpenSSL 1.0.0d 8 Feb 2011 debug1: Connecting to github.com [207.97.227.239] port 22. debug1: connect to address 207.97.227.239 port 22: Connection timed out ssh: connect to host github.com port 22: Connection timed out ssh: connect to host github.com port 22: Bad file number 

Vous ne verrez que le message de numéro de fichier incorrect sur les fenêtres utilisant le shell MINGGW. Les utilisateurs de Linux ne seront que temporisés.

Problème:

SSH est probablement bloqué sur le port 22. Vous pouvez le voir en tapant

  $nmap -sS github.com -p 22 Starting Nmap 5.35DC1 ( http://nmap.org ) at 2011-11-05 10:53 CET Nmap scan report for github.com (207.97.227.239) Host is up (0.10s latency). PORT STATE SERVICE 22/tcp ***filtered*** ssh Nmap done: 1 IP address (1 host up) scanned in 2.63 seconds 

Comme vous pouvez le voir, l’état est filtré, ce qui signifie que quelque chose le bloque. Vous pouvez résoudre ce problème en effectuant un SSH sur le port 443 (votre pare-feu / ISP ne le bloquera pas). Ce qui est également important que vous ayez besoin de ssh à “ssh.github.com” au lieu de github.com. Sinon, vous rapporterez au serveur Web au lieu du serveur ssh. Ci-dessous toutes les étapes nécessaires pour résoudre ce problème.

Solution:

(Tout d’abord, assurez-vous d’avoir généré vos clés comme expliqué sur http://help.github.com/win-set-up-git/ )

Créez le fichier ~ / .ssh / config (fichier de configuration ssh situé dans votre répertoire utilisateur. Sur Windows, probablement %USERPROFILE%\.ssh\config

Collez le code suivant dans celui-ci:

  Host github.com User git Hostname ssh.github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa Port 443 

Enregistrez le fichier.

Effectuez ssh comme d’habitude:

 $ssh -T github.com $Enter passphrase for key '.......... (you can smile now :)) 

Notez que je n’ai pas à fournir le nom d’utilisateur ni le numéro de port.

Les informations clés sont écrites dans la réponse de @ Sam, mais pas vraiment saillantes, alors clarifions la chose.

“Mauvais numéro de fichier” n’est pas informatif, ce n’est qu’un signe de l’exécution de ssh de git sous Windows.

La ligne qui apparaît même sans l’option -v :

 ssh: connect to host (some host or IP address) port 22: Bad file number 

est en fait sans importance .

Si vous vous concentrez là-dessus, vous perdrez votre temps car il ne s’agit pas d’un indice sur le problème réel, mais uniquement sur l’effet de l’exécution de ssh de git sous Windows. Ce n’est même pas un signe que l’installation ou la configuration de git ou de ssh est incorrecte. Vraiment l’ ignorer .

La même commande sous Linux a plutôt produit ce message pour moi, qui donnait un indice réel du problème:

 ssh: connect to host (some host or IP address) port 22: Connection timed out 

Solution actuelle: ignorer le “numéro de fichier incorrect” et obtenir plus d’informations

Concentrez-vous sur les lignes ajoutées avec -v sur la ligne de commande. Dans mon cas c’était:

 debug1: connect to address (some host or IP address) port 22: Attempt to connect timed out without establishing a connection 

Mon problème était une faute de frappe dans l’adresse IP, mais la votre peut être différente.

Cette question concerne-t-elle un “mauvais numéro de fichier”, ou les nombreuses raisons pour lesquelles une connexion peut expirer?

Si quelqu’un peut prouver que “mauvais numéro de fichier” n’apparaît que lorsque la raison réelle est “expiration du délai de connexion”, alors il est logique de savoir pourquoi la connexion peut expirer.

Jusqu’à ce que “mauvais numéro de fichier” ne soit qu’un message d’erreur générique et que cette question reçoive une réponse complète en disant “ignorez-le et recherchez d’autres messages d’erreur”.

EDIT: Qwertie a mentionné que le message d’erreur est en effet générique, comme cela peut arriver sur “Connexion refusée” également. Cela confirme l’parsing.

S’il vous plaît ne pas encombrer cette question avec des conseils généraux et répondre, ils n’ont rien à voir avec le sujet réel (et le titre) de cette question qui est “Erreur SSH Git:” Se connecter à l’hôte: numéro de fichier incorrect “. Si vous utilisez -v vous avez un message plus informatif qui mérite sa propre question, puis ouvrez une autre question, puis vous pouvez créer un lien vers celle-ci.

Cela a fonctionné pour moi:

 ssh -v git@github.com -p 443 

Peut-être que votre pare-feu ou une application de blocage (PeerBlock, etc.) bloque votre port

Vous pouvez également essayer de:

 telnet example.com 22 

pour voir si vous avez une connectivité au serveur. J’ai vu ce message et il a fini par être le VPN sur lequel je bloquais l’access. Déconnecté du VPN et j’étais prêt à partir.

Ce que j’ai trouvé, c’est que cela se produit lorsque votre connexion est mauvaise. Je l’ai eu il y a quelques minutes quand j’ai poussé à mon repo, il a continué à échouer et peu de temps après, la connexion est tombée en panne.

Après la remontée, la poussée est immédiatement passée.

Je crois que cela peut être causé soit par une baisse de connexion de votre côté ou du leur.

Si SSH est bloqué sur 22

il suffit de mettre à jour votre origin sur https

git remote set-url origin https://github.com/ACCOUNT_NAME/REPO_NAME.git

vérifier que des modifications ont été apscopes

git remote -v

J’ai juste eu le même problème et essayé toutes les solutions que je pouvais trouver, mais aucune ne fonctionnait. Finalement, j’ai essayé de quitter Git Bash et de le rouvrir, et tout fonctionnait parfaitement.

Alors, essayez de quitter Git Bash et de le rouvrir.

Essayez de quitter l’instance de git bash via laquelle vous avez effectué la configuration et essayez de la rouvrir. Cela a finalement fonctionné pour moi.

Sur Windows, j’ai essayé de quitter git bash et de re-exécuter mais n’a pas fonctionné, finalement moi (frustated) a fait un redémarrage et ça a fonctionné la prochaine fois 🙂

Vérifiez que vous avez publié vos clés publiques via votre interface d’administration GitHub.

Ensuite, assurez-vous que le port 22 n’est pas bloqué (comme illustré dans cette question )

Dans mon cas, l’adresse IP de notre hôte git avait changé.

Il suffit de vider le cache DNS pour résoudre le problème.

La création du fichier de configuration pour utiliser le port 443 ne fonctionnait pas pour moi. Finalement, j’ai essayé de désactiver ma connexion wifi, de la rallumer et le problème a disparu. Bizarre. Solution idiote mais ça peut aider quelqu’un 🙂

Vérifiez votre télécommande avec git remote -v Quelque chose comme ssh: /// gituser @ myhost: /git/dev.git

est faux à cause du sortingple /// slash

J’ai vu ce problème lorsque j’accède à bitbucket dans un réseau d’entreprise, alors que git fonctionne bien dans un réseau domestique.

 $ git pull ssh: connect to host bitbucket.org port 22: Bad file number fatal: Could not read from remote repository. 

J’ai utilisé le protocole https pour contourner ce problème.

 $ git pull https://myaccount@bitbucket.org/myaccount/myrepo.git Password for 'https://myaccount@bitbucket.org': 

Veuillez utiliser les mots correspondants pour remplacer “myaccount” et “myrepo”.

La solution suivante a fonctionné pour moi lorsque j’ai essayé de SSH dans l’instance AWS EC2 Ubuntu à partir de mon PC Windows 7 (32 bits) derrière le pare-feu d’entreprise définissant Proxy-

Ajoutez le bloc suivant au C:\Users\\.ssh\config

 > Host * > ProxyCommand "C:/Program Files/Git/mingw32/bin/connect.exe" -H : %h %p > IdentityFile "" > TCPKeepAlive yes > IdentitiesOnly yes > > Host  > Port  > Hostname  

Vous devrez append une configuration similaire par hôte dans lequel vous souhaitez faire SSH.

J’ai eu le problème quand j’ai eu une FileZilla-Connection ouverte sur Windows. Closed FileZilla -> Problème résolu.

Ceci est la solution simple pour économiser de la frappe, vous pouvez utiliser les étapes suivantes dans git bash facilement ..

(1) créer le référentiel distant

 git remote add origin https://{your_username}:{your_password}@github.com/{your_username}/repo.git 

Remarque: Si votre mot de passe contient le signe ‘@’, utilisez ‘% 40’ au lieu de

(2) Faites ensuite tout ce que vous voulez avec le repository distant

 ex:- git push origin master 

Dans mon cas, il suffit de redémarrer le routeur WiFi.