この問題を自分自身で経験した後、私は私のために働く解決策を見つけました:
エラーメッセージ:
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シェルを使用しているWindowsでのみ、不正なファイル番号のメッセージが表示されます。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
ご覧のとおり、状態はFilteredです。つまり、何かがそれをブロックしています。これを解決するには、ポート443へのSSHを実行します(ファイアウォール/ ispはこれをブロックしません)。github.comの代わりに "ssh.github.com"にsshする必要があることも重要です。それ以外の場合は、SSHサーバーではなくWebサーバーにレポートします。以下は、この問題を解決するために必要なすべての手順です。
解決:
(まず最初に、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 :))
ユーザー名やポート番号を指定する必要がないことに注意してください。