[解決済み] Git SSH エラー。"ホストへの接続: 不正なファイル番号"
質問
私は ギットガイド が、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 Settings\mugues\.ssh\id_rsa"
TCPKeepAlive yes
IdentitiesOnly yes
何か思い当たることは?
解決方法は?
私自身この問題に直面した後、私に合った解決策を見つけました。
エラーメッセージを表示します。
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ユーザはTimed outと表示されるだけです。
問題あり。
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接続することで解決できます(ファイアウォールやプロバイダがブロックすることはありません)。 また、github.comではなく、"ssh.github.com"にsshする必要があるのも重要な点です。 そうしないと、sshサーバではなく、ウェブサーバに報告することになります。 以下は、この問題を解決するために必要なすべての手順です。
解決方法
(まず最初に、以下の説明に従ってキーを生成したことを確認します。 http://help.github.com/win-set-up-git/ )
create file ~/.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 :))
ユーザー名とポート番号を指定する必要がないことに注意してください。
関連
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] ローカルファイルシステムからファイルを削除せずに、Git リポジトリからファイルを削除する
-
[解決済み] Git でファイルの一部分のみをコミットする
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] ssh "パーミッションが開きすぎています "エラー
-
[解決済み] Git にファイルモード (chmod) の変更を無視させるには?
-
[解決済み] Git リポジトリからファイルを削除するにはどうすればよいですか?
-
[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】git revert <hash> not allowed due to a merge but no -m option was given.
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[解決済み】GitHubで空のブランチを作成する
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push some refs to .......
-
[解決済み】ローカルGitブランチとそのリモートブランチを比較する方法
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] GitHubに空のブランチを作成する
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み] "fatal: This operation must be run in work tree." というメッセージが表示されるのはなぜですか?