Am urmat git ghid dar am o problemă ciudată atunci când încearcă să se conecteze la 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
Acest lucru este meu config sub .ssh
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile "C:\Documents and Settings\mugues\.ssh\id_rsa"
TCPKeepAlive yes
IdentitiesOnly yes
Vreo idee?
După aceasta eu o problema, am găsit o soluție care funcționează pentru mine:
Mesaj de eroare:
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
Veți vedea doar cele rele număr de dosar mesaj atunci când pe windows folosind MINGGW shell. Utilizatorii de Linux vor primi doar Timed out.
Problemă:
SSH este probabil blocat pe portul 22. Puteți vedea acest lucru prin tastarea
$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
După cum puteți vedea starea este Filtrat, ceea ce înseamnă că ceva se blochează. Puteți rezolva acest lucru prin efectuarea unui SSH la portul 443 (firewall / isp-ul nu va bloca acest lucru). De asemenea, este important de care aveți nevoie pentru ssh pentru "ssh.github.com" în loc de github.com. În caz contrar, vă va raporta la server de web, în loc de serverul ssh. Mai jos sunt toate măsurile necesare pentru a rezolva această problemă.
Soluție:
(Mai întâi de toate asigurați-vă că ați generat cheile ca a explicat pe http://help.github.com/win-set-up-git/)
creați fișierul ~/.ssh/config (ssh config fișier situat în directorul utilizatorului.
Pe windows probabil %USERPROFILE%\.ssh\config
Lipiți următorul cod în ea:
Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
Salvați fișierul.
Efectua ssh ca de obicei:
$ssh -T github.com
$Enter passphrase for key '.......... (you can smile now :))
Rețineți că nu trebuie să furnizeze numele de utilizator sau un număr de port.
Informații-cheie este scris în @Sam's-a raspuns dar nu foarte importante, asa ca lasa - 's fie clar.
Linia care apare chiar și fără -v
întrerupător:
ssh: connect to host (some host or IP address) port 22: Bad file number
este de fapt relevanță.
Dacă te concentrezi pe ea'll pierde timpul ca nu este un indiciu despre ce problema reală este, doar un efect de funcționare git's ssh pe Windows. L's nici un semn că git sau ssh instalare sau de configurare este greșit. Într-adevăr, l ignore.
Aceeași comandă pe Linux produsă în schimb acest mesaj pentru mine, care a dat efectiv un indiciu despre problema:
ssh: connect to host (some host or IP address) port 22: Connection timed out
Se concentreze pe linii adăugate cu -v
pe linia de comandă. În cazul meu a fost:
debug1: connect to address (some host or IP address) port 22: Attempt to connect timed out without establishing a connection
Problema mea a fost o greșeală de scriere în adresa IP, dar a ta poate fi diferită.
Dacă cineva poate dovedi că "rau număr fișier" apare numai atunci când motivul real este "connection time out" apoi se face un anumit sens la adresa de ce legătură ar putea time-out.
Până la asta, "rau număr fișier" este doar un mesaj generic de eroare și această întrebare este pe deplin răspuns prin a spune "ignora-l si uita-te pentru alte mesaje de eroare".
EDIT: Qwertie menționat că mesajul de eroare este, într-adevăr, generic, așa cum se poate întâmpla pe "Conexiune refuzat", de asemenea,. Acest lucru confirmă analiza.
Vă rugăm să don't dezordine această întrebare cu indicii generale și de a răspunde, ei nu au nimic de-a face cu acest subiect real (și titlul) de această întrebare, care este "Git SSH eroare: "Conecta la gazdă: Bad număr de dosar"". Dacă utilizați -v
ați mai informativ mesaj care merită propria lor întrebare, apoi deschide o altă întrebare, atunci puteți face un link la acesta.
Ceea ce am descoperit este ca, acest lucru se întâmplă atunci când conexiunea este slabă. Am avut câteva minute în urmă, atunci când împinge să-mi repo, a ținut de faptul că nu și un timp după aceea, conexiunea a mers în jos.
După ce a venit înapoi, împinge imediat a trecut prin.
Cred că poate fi cauzată fie de o scădere în legătură fie din partea ta sau a lor.
Am avut aceeași problemă și a încercat de fiecare soluție pe care o putea găsi, dar nici unul nu a functionat. În cele din urmă, am încercat să renunț Git Bash și re-deschidere, și totul a funcționat perfect.
Deci, încercați renunti la Git Bash și re-deschide.
Verificați că ați publicat cheilor publice prin intermediul GitHub interfata de Administrare.
Apoi asigurați-vă că portul 22 e't cumva blocat (ca ilustrate în această întrebare)
Următoarea soluție a lucrat pentru mine, atunci când a încercat să SSH în AWS EC2 exemplu Ubuntu din Windows 7 (32 Bit), PC-ul în spatele firewall corporativ configurarea Proxy-
Adăugați următorul bloc a `C:\Users\
> Host *
> ProxyCommand "C:/Program Files/Git/mingw32/bin/connect.exe" -H <YOUR_PROXY_SERVER_HOST>:<YOUR_PROXY_SERVER_PORT> %h %p
> IdentityFile "<path_OF_YOUR_IDENTITY_FILE>"
> TCPKeepAlive yes
> IdentitiesOnly yes
>
> Host <SERVER_HOST_NAME_OR_IP_YOU_WANT_TO_SSH_INTO>
> Port <SERVER_HOST_PORT_YOU_WANT_TO_SSH_INTO>
> Hostname <SERVER_HOST_NAME_OR_IP_YOU_WANT_TO_SSH_INTO>
Va trebui să adăugați configurație similară pe gazdă pe care doriți să SSH în.
Crearea fișierului de configurare pentru a utiliza portul 443 n't de lucru pentru mine. În cele din urmă am încercat să-mi opresc conexiune wifi, porniți-l din nou și problema a dispărut. Ciudat. Prostie soluție, dar poate ajuta pe cineva :)
Am văzut această problemă atunci când am acces bitbucket în rețeaua corporativă, în timp ce git funcționează bine în rețeaua de domiciliu.
$ git pull
ssh: connect to host bitbucket.org port 22: Bad file number
fatal: Could not read from remote repository.
Am folosit protocolul https pentru această soluție.
$ git pull https://[email protected]/myaccount/myrepo.git
Password for 'https://[email protected]':
Vă rugăm să folosiți cuvinte corespunzătoare pentru a înlocui "myaccount" și "myrepo".
Aceasta este o soluție simplă pentru salvarea unor tastarea puteți utiliza următoarele etape in git bash cu ușurință..
(1) a crea un depozit la distanță
git remote add origin https://{your_username}:{your_password}@github.com/{your_username}/repo.git
Notă: Dacă parola conține '@' semn de utilizare '%40' în loc de asta
(2) Atunci faci ce vrei cu depozitul de la distanță
ex:- git push origin master