Skip to main content

エラー: Bad file number

このエラーは通常、サーバーに接続できなかったことを示します。 よくある原因はファイアウォールとプロキシサーバーです。

この記事の内容

リモート Git コマンドや SSH の実行時に、接続がタイムアウトする場合があります:

$ ssh -vT git@github.com
> OpenSSH_8.1p1, LibreSSL 2.7.3
> 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

問題の解決

HTTPS を使用する

最もシンプルな解決策は、単に SSH を一切回避することです。 多くのファイアウォールやプロキシでは、HTTPS トラフィックを問題なく許可しています。 これを活用するには、使用中のリモート URL を変更します。

$ git clone https://github.com/USERNAME/REPO-NAME.git
> Cloning into 'reponame'...
> remote: Counting objects: 84, done.
> remote: Compressing objects: 100% (45/45), done.
> remote: Total 84 (delta 43), reused 78 (delta 37)
> Unpacking objects: 100% (84/84), done.

別のネットワークからテストする

ファイアウォールのない別のネットワークにコンピュータを接続できる場合は、GitHub への SSH 接続をテストしてみることができます。 想定通りにすべてが機能する場合は、ネットワーク管理者に問い合わせし、ファイアウォール設定で GitHub への SSH 接続が成功するように許可するよう、サポートしてもらってください。

HTTPS ポートを介して SSH を使用する

HTTPS を使用することができず、ファイアウォール管理者が SSH 接続を許可しない場合は、代わりに HTTPS ポートを介して SSH を使用します。

参考資料