Errore Git SSH: “Connetti all’host: numero di file errato”

Ho seguito la guida git ma ho questo strano problema quando provo a connetterti a github:

$ ssh -v [email protected] 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 

Questo è il mio file di configurazione sotto .ssh

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

Qualche idea?

Dopo aver avuto questo problema, ho trovato una soluzione di lavoro per me.

Messaggio di errore:

  ssh -v [email protected] 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 

Vedrai il messaggio del numero di file errato solo su Windows usando la shell MINGGW. Gli utenti Linux avranno appena esaurito il tempo.

Problema:

SSH è probabilmente bloccato sulla porta 22. Puoi vederlo digitando

  $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 

Come puoi vedere lo stato è filtrato, il che significa che qualcosa lo sta bloccando. Puoi risolvere questo problema eseguendo un SSH sulla porta 443 (il tuo firewall / ISP non lo bloccherà). Inoltre, è importante che tu abbia bisogno di ssh su “ssh.github.com” invece di github.com. Altrimenti segnalerai al server web invece del server ssh. Di seguito tutti i passaggi necessari per risolvere questo problema.

Soluzione:

(Prima di tutto assicurati di aver generato le tue chiavi come spiegato su http://help.github.com/win-set-up-git/ )

crea file ~ / .ssh / config (file di configurazione ssh situato nella tua directory utente. In Windows probabilmente %USERPROFILE%\.ssh\config

Incolla il seguente codice in esso:

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

Salva il file.

Esegui ssh come al solito:

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

Si noti che non devo fornire il nome utente o il numero di porta.

Le informazioni chiave sono scritte nella risposta di @ Sam ma non molto salienti, quindi chiariamolo.

“Numero di file errato” non è informativo, è solo un segno di esecuzione di git’s ssh su Windows.

La linea che appare anche senza -v passa:

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

è in realtà irrilevante .

Se ti concentri su di esso, perderai tempo in quanto non è un suggerimento su quale sia il vero problema, solo un effetto dell’esecuzione di git’s ssh su Windows. Non è nemmeno un segno che l’installazione o la configurazione di git o ssh sia sbagliata. Davvero, ignoralo .

Lo stesso comando su Linux ha prodotto invece questo messaggio per me, che ha fornito un indizio reale sul problema:

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

Soluzione reale: ignora il “numero di file errato” e ottieni maggiori informazioni

Concentrati sulle righe che vengono aggiunte con -v sulla riga di comando. Nel mio caso è stato:

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

Il mio problema era un refuso nell’indirizzo IP, ma il tuo potrebbe essere diverso.

Questa domanda riguarda “numero di file errato” o sui molti motivi per cui una connessione potrebbe scadere?

Se qualcuno può dimostrare che “numero di file non valido” appare solo quando il motivo reale è “timeout della connessione”, allora ha un senso indicare perché la connessione potrebbe scadere.

Fino a quel momento, “numero di file errato” è solo un messaggio di errore generico e a questa domanda viene data risposta completa dicendo “ignoralo e cerca altri messaggi di errore”.

EDIT: Qwertie ha detto che il messaggio di errore è effettivamente generico, come può accadere anche in “Connessione rifiutata”. Questo conferma l’analisi.

Per favore non ingombrare questa domanda con suggerimenti e risposte generali, non hanno nulla a che fare con l’argomento (e il titolo) effettivo di questa domanda che è “Errore Git SSH:” Connetti all’host: numero di file errato “”. Se si utilizza -v si dispone di un messaggio più informativo che merita la propria domanda, quindi aprire un’altra domanda, quindi è ansible creare un collegamento ad esso.

Questo ha funzionato per me:

 ssh -v [email protected] -p 443 

Forse il tuo firewall o un’applicazione di blocco (PeerBlock ecc.) Sta bloccando la tua porta

Puoi anche provare a:

 telnet example.com 22 

per vedere se hai la connettività al server. Ho visto questo messaggio ed è stato il VPN in cui stavo bloccando l’accesso. Disconnesso dalla VPN ed ero a posto.

Quello che ho trovato è che, questo accade quando la tua connessione è scarsa. L’ho avuto pochi minuti fa quando ho premuto il mio repository, ha continuato a fallire e dopo un po ‘, la connessione è andata giù.

Dopo che è tornato, la spinta è immediatamente passata.

Credo che possa essere causato da una diminuzione della connessione da parte tua o della tua.

Se SSH è bloccato oltre 22

aggiorna la tua origin a https

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

verificare che siano state apportate modifiche

git remote -v

Ho appena avuto lo stesso problema e ho provato ogni soluzione che ho trovato, ma nessuno ha funzionato. Alla fine, ho provato a chiudere Git Bash e riaprirlo, e tutto ha funzionato perfettamente.

Quindi, prova a chiudere Git Bash e riaprirlo.

Prova ad uscire dall’istanza di git bash attraverso la quale hai fatto il setup e prova a riaprire. Alla fine ha funzionato per me.

Su Windows ho provato a fare uscire git bash e rieseguire, ma non ha funzionato, finalmente me (frustrato) ha fatto un riavvio e ha funzionato la prossima volta 🙂

Controlla di aver pubblicato le tue chiavi pubbliche attraverso l’interfaccia di GitHub Administration.

Quindi assicurati che la porta 22 non sia bloccata in qualche modo (come illustrato in questa domanda )

Nel mio caso l’indirizzo IP del nostro git host era cambiato.

Il semplice svuotamento della cache DNS ha risolto il problema.

La creazione del file di configurazione per utilizzare la porta 443 non ha funzionato per me. Alla fine ho provato a spegnere la mia connessione wifi, accenderla di nuovo e il problema è scomparso. Strano. Soluzione sciocca ma potrebbe aiutare qualcuno 🙂

Controlla il tuo telecomando con git remote -v Qualcosa come ssh: /// gituser @ myhost: /git/dev.git

è sbagliato a causa della tripla // / barra

Ho visto questo problema quando accedo a bitbucket nella rete aziendale, mentre git funziona bene nella rete domestica.

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

Ho usato il protocollo https per ovviare a questo problema.

 $ git pull https://[email protected]/myaccount/myrepo.git Password for 'https://[email protected]': 

Utilizza le parole corrispondenti per sostituire “myaccount” e “myrepo”.

La seguente soluzione ha funzionato per me quando ho provato ad usare SSH nell’istanza di AWS EC2 Ubuntu dal mio PC Windows 7 (32 bit) dietro il firewall aziendale impostando Proxy-

Aggiungi il seguente blocco a C:\Users\\.ssh\config file-

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

Sarà necessario aggiungere una configurazione simile per host in cui inserire SSH.

Ho avuto il problema quando ho avuto un FileZilla-Connection aperto su Windows. FileZilla chiuso -> Problema risolto.

Questa è la soluzione semplice per salvare un po ‘di digitazione è ansible utilizzare i seguenti passaggi in git bash facilmente ..

(1) creare il repository remoto

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

Nota: se la tua password contiene il segno ‘@’ usa ‘% 40’ invece di quello

(2) Quindi fai tutto ciò che vuoi con il repository remoto

 ex:- git push origin master 

Nel mio caso è sufficiente il riavvio del router WiFi aiutato.