SSH त्रुटि प्राप्त करें: "होस्ट से कनेक्ट करें: खराब फ़ाइल संख्या"


153

मैंने git गाइड का अनुसरण किया, लेकिन जब मुझे 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

यह .ssh के अंतर्गत मेरी कॉन्फ़िग फ़ाइल है

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

कोई उपाय?


आज यह मिल गया। और ऐसा लगता है कि गितूब नीचे था।
यसरब

टीएल; डीआर: "खराब फाइल नंबर" पर ध्यान न दें। आपके द्वारा खोजी जा रही जानकारी उस संदेश में नहीं है। इसका कुछ भी मतलब हो सकता है। पर विवरण stackoverflow.com/a/22788046
स्टीफ़न गौयरिचन

जवाबों:


186

इस समस्या के होने के बाद, मुझे एक समाधान मिला जो मेरे लिए काम करता है:

त्रुटि संदेश:

    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

जब आप MINGGW शेल का उपयोग कर रहे हों तो आपको केवल खराब फाइल नंबर संदेश दिखाई देगा। लिनक्स यूजर्स सिर्फ टाइम आउट कर पाएंगे।

संकट:

SSH संभवतः पोर्ट 22 पर अवरुद्ध है। आप इसे टाइप करके देख सकते हैं

    $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

जैसा कि आप देख सकते हैं कि राज्य फ़िल्टर्ड है, जिसका अर्थ है कि कुछ इसे अवरुद्ध कर रहा है। आप 443 को पोर्ट करने के लिए SSH प्रदर्शन करके इसे हल कर सकते हैं (आपका फ़ायरवॉल / isp इसे ब्लॉक नहीं करेगा)। यह भी महत्वपूर्ण है कि आपको github.com के बजाय "ssh.github.com" पर जाएं। अन्यथा, आप ssh सर्वर के बजाय वेबसर्वर को रिपोर्ट करेंगे। नीचे इस समस्या को हल करने के लिए आवश्यक सभी कदम हैं।

उपाय:

(सबसे पहले सुनिश्चित करें कि आपने अपनी कुंजियाँ उत्पन्न की हैं जैसे http://help.github.com/win-set-up-git// पर समझाया गया है )

अपने उपयोगकर्ता निर्देशिका में स्थित फ़ाइल ~ / .ssh / config (ssh config फ़ाइल बनाएँ) %USERPROFILE%\.ssh\config

इसमें निम्न कोड चिपकाएँ:

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

फ़ाइल सहेजें।

हमेशा की तरह ssh करें:

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

ध्यान दें कि मुझे उपयोगकर्ता नाम या पोर्ट नंबर की आपूर्ति करने की आवश्यकता नहीं है।



1
"इसमें निम्न कोड चिपकाएँ:", मुझे समझ नहीं आया। खराब फ़ाइल संख्या को हल करने के लिए मुझे कैसे माना जाता है? क्या मुझे इसे बनाना चाहिए और नोटपैड फ़ाइल के रूप में सहेजना चाहिए?
डेविड डिमलंता

27
मैं इसके बजायssh: connect to host ssh.github.com port 443: Bad file number
cccn1991

इसने बिटबकैट.ऑर्ग के लिए भी काम किया, जब मेरे पहले से काम कर रहे सेटअप ने अचानक काम करना बंद कर दिया। सबसे अच्छी बात यह है कि मुझे केवल यही करना था कि SSH config फाइल में बदलाव करें।
केविन कॉन्डन

2
.ssh/configविंडोज 7 पर एक फाइल का उपयोग करते समय , सुनिश्चित करें कि आपके पास एक यूजर-एनवायरोमेंटल वार HOMEहै %USERPROFILE%जैसा कि मूल्य के साथ -> मेरी मदद की, जब मेरी
एसएचएस

40

महत्वपूर्ण जानकारी @ सैम के उत्तर में लिखी गई है, लेकिन वास्तव में मुख्य नहीं है, तो चलिए इसे स्पष्ट करते हैं।

"खराब फ़ाइल नंबर" जानकारीपूर्ण नहीं है, यह केवल विंडोज पर गिट के ssh को चलाने का संकेत है।

वह पंक्ति जो -vस्विच के बिना भी दिखाई देती है :

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

वास्तव में अप्रासंगिक है

यदि आप इस पर ध्यान केंद्रित करते हैं तो आप अपना समय बर्बाद कर देंगे क्योंकि यह इस बारे में संकेत नहीं है कि वास्तविक समस्या क्या है, बस विंडोज पर गिट के ssh चलाने का एक प्रभाव है। यह भी संकेत नहीं है कि git या ssh इंस्टॉल या कॉन्फ़िगरेशन गलत है। वास्तव में, इसे अनदेखा करें

लिनक्स पर बहुत ही कमांड मेरे लिए इस संदेश के बजाय उत्पन्न हुआ, जिसने समस्या के बारे में एक वास्तविक संकेत दिया:

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

वास्तविक समाधान: "खराब फ़ाइल संख्या" को अनदेखा करें और अधिक जानकारी प्राप्त करें

-vकमांड लाइन के साथ जोड़ी जा रही लाइनों पर ध्यान दें । मेरे मामले में यह था:

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

मेरी समस्या IP पते में एक टाइपो थी, लेकिन आपकी भिन्न हो सकती है।

क्या यह प्रश्न "खराब फ़ाइल संख्या" के बारे में है, या कई कारणों के बारे में है कि कोई कनेक्शन क्यों समय समाप्त कर सकता है?

यदि कोई यह साबित कर सकता है कि "खराब फाइल नंबर" केवल तब दिखाई देता है जब वास्तविक कारण "कनेक्शन टाइम आउट" होता है, तो यह पता लगाने के लिए कुछ समझ में आता है कि कनेक्शन क्यों टाइम आउट हो सकता है।

इससे पहले तक, "खराब फ़ाइल नंबर" केवल एक सामान्य त्रुटि संदेश है और इस सवाल का पूरी तरह से उत्तर यह है कि "इसे अनदेखा करें और अन्य त्रुटि को देखें"।

EDIT: क्वर्टी ने उल्लेख किया कि त्रुटि संदेश वास्तव में सामान्य है, क्योंकि यह "कनेक्शन मना" पर भी हो सकता है। यह विश्लेषण की पुष्टि करता है।

कृपया इस प्रश्न को सामान्य संकेत और उत्तर के साथ जोड़कर न देखें, इस प्रश्न के वास्तविक विषय (और शीर्षक) से उनका कोई लेना-देना नहीं है, जो "गेट एसएसएच त्रुटि:" होस्ट से कनेक्ट करें: खराब फ़ाइल संख्या "" है। यदि आप का उपयोग करने के -vलिए अधिक जानकारीपूर्ण संदेश है जो अपने स्वयं के प्रश्न के लायक है, तो एक और प्रश्न खोलें, फिर आप इसके लिए एक लिंक बना सकते हैं।


1
हाँ, मेरी scpकमांड लाइन में -v जोड़कर "debug1: पता 216.34.181.70 पोर्ट 22 से कनेक्ट करें: कनेक्शन" बैड फ़ाइल नंबर "से पहले" इनकार कर दिया "तो यह हमेशा एक" समय समाप्त "त्रुटि नहीं है।
क्वर्टी जूल

ओह, विंडोज हमेशा अस्पष्ट त्रुटि संदेश दिखाता है, यहां तक ​​कि जब उपकरण पारंपरिक रूप से लिनक्स और अन्य यूनिक्स जैसे सिस्टम पर उपयोग किया जाता है ...
lilydjwg


5

हो सकता है कि आपका फ़ायरवॉल या अवरोधक अनुप्रयोग (PeerBlock आदि) आपके पोर्ट को अवरुद्ध कर रहा हो


5

आप इसके लिए प्रयास भी कर सकते हैं:

telnet example.com 22

यह देखने के लिए कि क्या आपके पास सर्वर से कनेक्टिविटी है। मैंने इस संदेश को देखा और यह समाप्त हो गया कि मैं जिस वीपीएन पर था वह एक्सेस को रोक रहा था। वीपीएन से विमुख और मुझे जाने के लिए अच्छा था।


4

मैंने पाया है कि यह तब होता है, जब आपका कनेक्शन खराब होता है। मेरे पास कुछ मिनट पहले यह था कि जब मैं अपने रेपो को धक्का दे रहा था, तो वह विफल रही और कुछ समय बाद, कनेक्शन नीचे चला गया।

इसके बाद वापस ऊपर आया, धक्का तुरंत के माध्यम से चला गया।

मेरा मानना ​​है कि यह या तो आपके पक्ष या उनके संबंध में एक बूंद के कारण हो सकता है।


1
मुझे यह त्रुटि तब आती है जब मैं अपने Verizon Jetpack का उपयोग कर रहा हूं, जो दो अलग-अलग उपकरणों से ssh का उपयोग करते समय मेरे कनेक्शन को छोड़ने लगता है। तो Jetpack में कुछ कनेक्शन को छोड़ रहा है, और bad file numberजब कनेक्शन नीचे जाता है तो मुझे त्रुटि मिलती है ।
15

1
मुझे अपने लैपटॉप के साथ अपने फ़ोन के हॉटस्पॉट कनेक्शन का उपयोग करते समय यह त्रुटि मिलती है।
लुकास मॉर्गन

@LucasMorgan यहां भी। ऐसा होने पर मैं इसका उपयोग कर रहा था।
ठंढाईदार मारस

3

यदि SSH 22 से अधिक अवरुद्ध है

बस अपने originhttps में अद्यतन करें

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

सत्यापित करें कि परिवर्तन किए गए थे

git remote -v


सही है, हालांकि आपको इस विधि के साथ प्रत्येक रिपॉजिटरी के लिए यह करना होगा। एक विन्यास फाइल में यह विश्व स्तर पर लागू होता है।
सैम

2

मुझे बस एक ही समस्या थी और हर समाधान की कोशिश की जो मुझे मिल सकती थी, लेकिन कोई भी काम नहीं किया। आखिरकार, मैंने गिट बैश को छोड़ने और इसे फिर से खोलने की कोशिश की, और सब कुछ पूरी तरह से काम किया।

इसलिए, गिट बैश को छोड़ने और इसे फिर से खोलने का प्रयास करें।


2

आप जिस सेटअप के माध्यम से सेटअप किया था और जिसे फिर से खोलने का प्रयास कर सकते हैं। यह आखिरकार मेरे लिए काम कर गया।


10
" अंततः मेरे लिए काम किया" मुझे लगता है कि आप इस प्रक्रिया में अन्य चीजें कर रहे हैं जो योगदान दे सकते हैं।
जेक बर्गर

1

खिड़कियों पर मैंने गेट बैश छोड़ने और फिर से दौड़ने की कोशिश की, लेकिन काम नहीं किया, आखिरकार मुझे (निराश) ने फिर से शुरू किया और अगली बार काम किया :)


1

डबल चेक करें कि आपने अपने सार्वजनिक कुंजी को अपने GitHub प्रशासन इंटरफ़ेस के माध्यम से प्रकाशित किया है।

फिर सुनिश्चित करें कि पोर्ट 22 किसी तरह अवरुद्ध नहीं है (जैसा कि इस प्रश्न में सचित्र है )


1
>> पहले सुनिश्चित करें कि 'git' आपका GitHub उपयोगकर्ता खाता नाम है। जैसा कि git guide पर बताया गया है: सब कुछ टेस्ट करें यह सुनिश्चित करने के लिए कि सब कुछ काम कर रहा है अब आप GHHub में SSH होंगे। "Git@github.com" भाग को न बदलें। वहीं होना चाहिए। >> फिर सुनिश्चित करें कि पोर्ट 22 किसी भी तरह अवरुद्ध नहीं है -> मैंने विंडोज़ xp फ़ायरवॉल को अक्षम कर दिया है लेकिन कुछ भी नहीं बदला है।
मासिमो यूग्यूस

1

मेरे मामले में हमारे git होस्ट का IP पता बदल गया था।

बस DNS कैश फ्लश करने से समस्या ठीक हो गई।


0

पोर्ट 443 का उपयोग करने के लिए कॉन्फिग फाइल बनाना मेरे लिए कारगर नहीं था। अंत में मैंने अपने वाईफाई कनेक्शन को बंद करने की कोशिश की, इसे फिर से चालू किया और समस्या गायब हो गई। अजीब। मूर्खतापूर्ण समाधान लेकिन यह किसी की मदद कर सकता है :)


0

/// gituser @ myhost: Git ssh की तरह दूरदराज -v कुछ के साथ अपने दूरस्थ चेक /git/dev.git

ट्रिपल /// स्लैश के कारण गलत है


0

मैंने इस मुद्दे को देखा जब मैं कॉर्पोरेट नेटवर्क में बिटबकेट का उपयोग करता हूं, जबकि गिट होम नेटवर्क में ठीक काम करता है।

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

मैंने इसे वर्कअराउंड करने के लिए https प्रोटोकॉल का उपयोग किया।

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

कृपया "myaccount" और "myrepo" को बदलने के लिए संबंधित शब्दों का उपयोग करें।


0

निम्नलिखित समाधान ने मेरे लिए काम किया जब मेरे विंडोज 7 (32 बिट) पीसी से एसएसडब्ल्यू ईसी 2 उबंटू उदाहरण में एसएसएच करने की कोशिश की, कॉर्पोरेट फ़ायरवॉल के पीछे पीसी प्रॉक्सी स्थापित करना-

C:\Users\<YOUR_WINDOWS_USER>\.ssh\configफाइल करने के लिए निम्नलिखित ब्लॉक जोड़ें-

> 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>

आपको प्रति होस्ट के समान कॉन्फ़िगरेशन जोड़ने की आवश्यकता होगी जिसे आप SSH में चाहते हैं।


-1

मुझे समस्या तब हुई जब मेरे पास विंडोज़ पर एक ओपन फाइलज़िला-कनेक्शन था। बंद FileZilla -> समस्या हल।


-1

यह कुछ टाइपिंग को बचाने के लिए सरल उपाय है जो आप निम्नलिखित चरणों का उपयोग आसानी से कर सकते हैं।

(1) दूरस्थ रिपॉजिटरी बनाएँ

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

नोट: यदि आपके पासवर्ड में इसके बजाय '@' साइन का उपयोग '% 40' है

(२) फिर रिमोट रिपॉजिटरी के साथ कुछ भी करना चाहते हैं

ex:- git push origin master

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.