Ошибка git SSH: "подключение к хосту: неверный номер файла"



я следовал git guide но у меня есть эта странная проблема при попытке подключиться к 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


Это мой конфигурационный файл под .ssh



Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile "C:Documents and Settingsmugues.sshid_rsa"
TCPKeepAlive yes
IdentitiesOnly yes


есть идеи?

833   19  

19 ответов:

после того, как эту проблему сама, я нашел рабочее решение для меня.

сообщение об ошибке:

    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

вы увидите только сообщение с плохим номером файла, когда в windows используется оболочка MINGGW. Пользователи Linux просто получат тайм-аут.

:

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

как вы можете видеть, состояние фильтруется, что означает, что что-то блокируется оно. Вы можете решить эту проблему, выполнив SSH для порта 443 (ваш брандмауэр / isp не будет блокировать это). Что также важно, что вам нужно ssh "ssh.github.com" вместо того, чтобы github.com. В противном случае вы будете отчитываться перед веб-сервером вместо ssh-сервера. Ниже приведены все шаги, необходимые для решения этой проблемы.

устранение:

(прежде всего убедитесь, что вы создали свои ключи, как описано на http://help.github.com/win-set-up-git/)

создать папка./~ ssh / config (файл конфигурации ssh, расположенный в вашем каталоге пользователя. На windows наверное %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 :))

обратите внимание, что мне не нужно указывать имя пользователя или номер порта.

ключевая информация записана в ответе @Sam, но не очень заметна, поэтому давайте проясним это.

"плохой номер файла" не информативен, это только признак запуска ssh git в Windows.

строка, которая появляется даже без -v переключатель:

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

на самом деле не имеет значения.

если вы сосредоточитесь на нем, вы потеряете свое время, поскольку это не намек на то, что реальная проблема, просто эффект запуска git ssh на Windows. Это даже не признак того, что установка или конфигурация git или ssh неверна. Действительно,игнорировать.

та же самая команда на Linux произвела вместо этого это сообщение для меня, которое дало фактический намек на проблему:

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: Qwertie упомянул, что сообщение об ошибке действительно является общим, так как это может произойти и при "отказе от соединения". Это подтверждает анализ.

пожалуйста, не загромождайте этот вопрос общими подсказками и ответом, они не имеют ничего общего с фактической темой (и названием) этого вопроса, который является "ошибка git SSH: "подключение к хосту: плохой номер файла"". При использовании -v у вас есть более информативное сообщение, которое заслуживает своего собственного вопроса, затем откройте другой вопрос, то вы можете сделать ссылку на него.

это сработало для меня:

ssh -v [email protected] -p 443

возможно, ваш брандмауэр или блокирующее приложение (PeerBlock и т. д.) блокирует ваш порт

можно попробовать так:

telnet example.com 22

чтобы увидеть, если у вас есть подключение к серверу. Я видел это сообщение, и это закончилось тем, что VPN, на котором я был, блокировал доступ. Отключился от VPN, и мне было хорошо идти.

Я обнаружил, что это происходит, когда ваше соединение плохое. У меня было это несколько минут назад, когда я нажимал на свое РЕПО, он продолжал терпеть неудачу, и через некоторое время после этого соединение отключилось.

после того, как он вернулся, нажать сразу прошел.

Я считаю, что это может быть вызвано либо падением связи с вашей стороны, либо с их стороны.

Если SSH заблокирован более 22

просто обновите origin на https

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

убедитесь, что изменения были внесены

git remote -v

У меня была такая же проблема, и я пробовал все решения, которые мог найти, но ни один не работал. В конце концов, я попытался выйти из Git Bash и снова открыть его, и все работало отлично.

Итак, попробуйте выйти из Git Bash и снова открыть его.

попробуйте выйти из экземпляра Git bash, через который вы сделали настройку, и попробуйте снова открыть его. В конце концов, это сработало для меня.

на windows я попытался сделать quit git bash и повторно запустить, но не сработал, наконец, я (разочарованный) сделал перезапуск, и он сработал в следующий раз:)

дважды проверьте, что вы опубликовали свои открытые ключи через интерфейс администрирования GitHub.

затем убедитесь, что порт 22 не заблокирован (как иллюстрируется в этом вопросе)

в моем случае IP-адрес нашего хоста git изменился.

просто промывка кэша DNS Исправлена проблема.

создание файла конфигурации для использования порта 443 не сработало для меня. Наконец, я попытался отключить свое wifi-соединение, снова включить его, и проблема исчезла. Странный. Глупое решение, но это может помочь кому-то:)

проверьте свой пульт с помощью git remote-v Что-то вроде ssh:///gituser@myhost:/git/dev.ГИТ

Это неправильно из-за тройной / / / Слэш

Я видел эту проблему, когда я получаю доступ к bitbucket в корпоративной сети, в то время как git отлично работает в домашней сети.

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

я использовал протокол https, чтобы обойти это.

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

пожалуйста, используйте соответствующие слова для замены "myaccount"и " myrepo".

следующее решение работало для меня при попытке SSH в экземпляр AWS EC2 Ubuntu с моего Windows 7 (32 бит) ПК за корпоративным брандмауэром настройка прокси -

добавьте следующий блок C:\Users\<YOUR_WINDOWS_USER>\.ssh\config file -

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

У меня была проблема, когда у меня было открытое FileZilla-соединение на Windows. Закрытая FileZilla - > проблема решена.

Это простое решение для сохранения некоторых типов вы можете легко использовать следующие шаги в git bash..

(1) создать удаленный репозиторий

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

Примечание: Если ваш пароль содержит знак " @ " использовать '%40' вместо

(2) затем сделать все, что вы хотите с удаленным репозиторием

ex:- git push origin master

в моем случае просто перезапуск маршрутизатора WiFi помог.

Comments

    Ничего не найдено.