SSH の問題のトラブルシューティング

SSH で問題が発生した場合、次のことを試して問題のトラブルシューティングを行います。

Sourcetree を使用している場合、これらのソリューションの一部は Sourcetree でのステップに含まれます。ただし、コマンド ラインの使用が必要となる場合もあります。Sourcetree のリポジトリで右上の [ターミナル] ををクリックすると、コマンド ラインを見つけることができます。

エラー メッセージのトラブルシューティング

SSH 経由で認証中に次のエラー メッセージが表示されることがあります。

Permission denied (publickey)

または

No suitable response from remote

または

repository access denied

Git を使用して SSH 経由でクローン、プッシュ、またはプルを実行する際に、SSH エージェントが提供したキーを Bitbucket で認証できなかった場合、これらのメッセージのいずれかが表示されることがあります。

このようなメッセージが表示される最も一般的な理由は次のとおりです。

  • 接続の試行時に sudo を使用した

    ssh-agent は、ルート レベルではなくユーザー レベルで実行されるため、クローン、プッシュ、またはプルの実行時に sudo を使用しないでください。

  • 公開キーが Bitbucket にロードされていない

    公開キーが Bitbucket にロードされているかどうかを確認するには、以下を実行します。

    1. Bitbucket で、左下にあるアバターから [個人設定] を選択します。
      [アカウント設定] ページが表示されます。

    2. [SSH キー] をクリックします。
      [SSH キー] ページにすべての既存のキーが一覧表示されます。

    3. 一覧にキーが表示されない場合、「SSH キーの設定」ドキュメントに従って SSH キーを 1 つ設定します。

  • キーが SSH エージェントにロードされていない

    SSH エージェントが Bitbucket にキーを提供していない場合、接続に失敗します。システムを最近再起動している場合にこの問題が発生することがあります。

    SSH エージェントが提供しているキーを調べ、エージェントに追加する手順は次のとおりです。

ターミナルから

SSH キーがロードされていることを確認します。

$ ssh-add -l

キーがリストに表示されない場合、「ssh-add」に続けて、秘密キー ファイルへのパスを入力してキーを追加します。

$ ssh-add ~/.ssh/<private_key_file>

Sourcetree から

Windows:

システム トレイで Pageant (PuTTY 認証エージェント) アイコンをダブルクリックして [Pageant Key List] ダイアログを開きます。
SSH キーが表示されない場合は、[キーの追加] をクリックします。

Could not open a connection to your authentication agent

ssh-add コマンドを使用しようとすると、このエラーが表示されることがあります。ほとんどの場合、ssh エージェントが正常に起動しなかった可能性があります。エージェントを開始するには、次の手順を実行します。

macOS / Linux

$ eval `ssh-agent`
Agent pid 9700

Windows

$ eval $(ssh-agent)
Agent pid 9700

それから、引き続き ssh-add コマンドを使用してキーを追加します。

unexpected token

.bashrc が正しく起動しない場合、次のようなメッセージが表示されます。

1 2 line19: syntax error near unexpected token 'then' line 19: ' if[ $? -eq 0 ]; then '

これらのメッセージは、ブラウザからカット アンド ペーストを実行した時にエラーが発生した可能性があることを示しています。このエラーは Chrome を使用しているときによく発生するため、Firefox などの別のブラウザを試してみてください。

1 Operation timed out

タイムアウトした操作がある場合は、以下のメッセージまたは類似のメッセージが表示されます。

 

1 2 3 ssh: connect to host bitbucket.org port 22: Operation timed out fatal: The remote end hung up unexpectedly Completed with errors, see above

タイムアウトはお使いのコンピューターが Bitbucket に到達できなかったことを示しており、おそらく、ユーザー自身のネットワークに原因があると考えられます。たとえば、ネットワーク管理者がこの接続をブロックするファイアウォール ルールを設定している可能性があります。ネットワーク管理者に連絡してこの問題を解決してください。

ホスト「bitbucket.org (104.192.143.1)」の真正性が確立できません。

Bitbucket ホストでは、Git の SSH 接続のみが許可されます。SSH URL を使用して Bitbucket に初めてアクセスするときに、SSH クライアントは Bitbucket のホストが既知のホストであるかどうかを確認します。ホストが ~/.ssh/known_hosts ファイル内にない場合に継続すると、SSH から Bitbucket のホストを既知のホストとして追加する旨の警告が表示されます。

$ hg clone ssh://hg@bitbucket.org/newuserme/mquoteforkテストキー
ホスト「bitbucket.org (104.192.143.1)」の真正性が確立できません。
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

この警告が表示されたら、[yes] と入力できます。

既知のホストの内容を表示すると、実際のキーが base64 エンコード形式で保存されていることがわかります。

1 bitbucket.org,104.192.143.1 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==

ネットワーク内のセキュリティ プロトコルによっては、システム管理者は承認された既知のホストをまとめた一覧を保持する場合があります。Bitbucket のサーバーの公開キーのフィンガープリントについては、「SSH キー」を参照してください。

remote: No supported authentication methods left to try!

このエラーは、Windows で Sourcetree を使用して SSH による認証を実行しようとすると発生することがあります。

このエラーを修正するには、次の点を確認します。

  • Pageant が実行中で、キーがロード済みであることを確認します。

  • 対応する公開キーが使用する Bitbucket アカウントに追加されていることを確認します。

他の SSH 問題のトラブルシューティング

エラー メッセージが表示されずに次のような SSH の問題が生じる場合もあります。

ポート 22 がブロックされている場合

ネットワーク管理者は、ポート 22 上での SSH の外部接続をブロックすることがあります。ネットワークでこのポートがブロックされている場合、Bitbucket は、代替のホスト名とポートの組み合わせを提供します。

または、altssh.bitbucket.org をポート 443 経由で使用します。通常、ポート 443 は HTTPS 用に使用されるため、管理者は外部の Web 参照用にこのポートを開いています。この場合、使用可能な URL は次のとおりです。

git

ssh://git@altssh.bitbucket.org:443/<account_name>/<repo_name>/

SSH 認証のテスト

このセクションのコマンドを使用して SSH の認証に関する問題のトラブルシューティングを行います。

SSH 認証をテストするには

以下のコマンドは SSH キーについて SSH エージェントをチェックしてから、その秘密キーが既存の Bitbucket アカウントの公開キーと一致するかどうかをチェックします。

git

$ ssh -T git@bitbucket.org

エージェントにキーがロードされていない場合: $ ssh -T hg@bitbucket.org
Permission denied (publickey).ローカル マシンが bitbucket.org の IP アドレスを取得できない場合: $ ssh -T hg@bitbucket.org
ssh: connect to host bitbucket.org port 22: Connection refused 接続が成功した場合: $ ssh -T hg@bitbucket.org
conq: logged in as teamsinspace
git または hg を使用して Bitbucketに接続できます。Shell アクセスは無効です。

SSH 接続の問題を突き止めるには

Permission denied (publickey)」エラーが表示された場合、キーが SSH エージェントと Bitbucket アカウントにロードされていることを確認済みであれば、接続の問題に関して詳細情報を取得できます。

git

$ ssh -v git@bitbucket.org

このコマンドにより取得できる情報のタイプには以下のようなものがあります。

  • ターミナルが読み取っている SSH 構成ファイル

  • IP アドレスがローカル マシンに接続されていること

  • 認証のためにロードする SSH キー

エラーの場合の応答

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 $ ssh -v hg@bitbucket.org OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011 debug1: Reading configuration data /Users/emmap1/.ssh/config debug1: Applying options for bitbucket.org debug1: Reading configuration data /etc/ssh_config debug1: Applying options for * debug1: Connecting to bitbucket.org [172.16.10.101] port 22. debug1: Connection established. debug1: identity file /Users/emmap1/.ssh/emmap1 type 1 debug1: identity file /Users/emmap1/.ssh/emmap1-cert type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3 debug1: match: OpenSSH_5.3 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 zlib@openssh.com debug1: kex: client->server aes128-ctr hmac-md5 zlib@openssh.com debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host 'bitbucket.org' is known and matches the RSA host key. debug1: Found key in /Users/emmap1/.ssh/known_hosts:2 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering RSA public key: /Users/emmap1/.ssh/emmap1 debug1: Authentications that can continue: publickey debug1: No more authentication methods to try. Permission denied (publickey).

この実行では、システムは emmap1 公開キーを最初に提供しました。これに失敗したため、システムは既定のキーを使用しようとしましたが、再び失敗しました。適切なキーで失敗する場合、「Permission denied (publickey)」エラー メッセージのトラブルシューティングの手順を行います。

成功した場合の応答

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 $ ssh -v hg@bitbucket.org OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011 debug1: Reading configuration data /Users/manthony/.ssh/config debug1: Applying options for bitbucket.org debug1: Reading configuration data /etc/ssh_config debug1: Applying options for * debug1: Connecting to bitbucket.org [172.16.10.101] port 22. debug1: Connection established. debug1: identity file /Users/manthony/.ssh/manthony type 1 debug1: identity file /Users/manthony/.ssh/manthony-cert type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3 debug1: match: OpenSSH_5.3 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 zlib@openssh.com debug1: kex: client->server aes128-ctr hmac-md5 zlib@openssh.com debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host 'bitbucket.org' is known and matches the RSA host key. debug1: Found key in /Users/manthony/.ssh/known_hosts:2 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by serverhg debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering RSA public key: /Users/manthony/.ssh/manthony debug1: Remote: Forced command: conq manthony debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Server accepts key: pkalg ssh-rsa blen 279 debug1: PEM_read_PrivateKey failed debug1: read PEM private key done: type <unknown> debug1: read PEM private key done: type RSA Identity added: /Users/manthony/.ssh/manthony (/Users/manthony/.ssh/manthony) debug1: read PEM private key done: type RSA Connection closed by 172.16.10.101

ssh-agent の複数のバージョンを実行しているかどうかを確認するには

ロードした SSH キーが少なくとも 1 つある場合は、コマンド ラインに「ps」を入力します。

$ ps
PID PPID PGID WINPID TTY UID STIME COMMAND
5192 1 5192 5192 ?500 19:23:34 /bin/ssh-agent
5840 1 5840 5840 con 500 08:38:20 /bin/sh
6116 5840 6116 1336 con 500 08:38:22 /bin/ps

先ほどの応答では、実行中の ssh-agent が 1 つのみ表示されています。

  • /bin/ssh-agent – 実行中の ssh-agent

  • /bin/sh – ユーザーがいるシェル。

  • /bin/ps – ユーザーが実行しているプロセス。

この応答で 2 つ以上の ssh-agent が返される場合、エージェントのすべてのバージョンを強制終了し、ssh-agent を再起動します。

各バージョンを強制終了するには、kill コマンドとプロセス ID を使用します。先ほどの例では、プロセス ID は 5192 です。

$ kill 5192

ssh-agent を再起動するには、次のコマンドを実行します: $ eval 'ssh-agent'

使用する SSH キーがロードされていることを確認するには

ロード済みのキーを一覧表示するには、「ssh-add -l」と入力します (これは文字の l で数字の 1 ではありません)。この例では、2 つの異なるキーが返されます。

$ ssh-add -l
2048 4c:80:61:2c:00:3f:9d:dc:08:41:2e:c0:cf:b9:17:69 /Users/manthony/.ssh/workid (RSA)
2048 7a:9c:b2:9c:8e:4e:f4:af:de:70:77:b9:52:fd:44:97 /Users/manthony/.ssh/personalid (RSA)

利用したい SSH キーが表示されない場合、「ssh-add」に続けて、秘密キー ファイルへのパスを入力してキーを追加します。

$ ssh-add ~/.ssh/<private_key_file>

引き続き問題がある場合、すべての不要な SSH キーを削除します。

$ ssh-add -d ~/.ssh/<private_key_file>

Windows で Sourcetree を使用している場合

システム トレイで Pageant アイコンをダブルクリックして、Pageant の Key List ダイアログを開きます。
SSH キーが表示されない場合、[キーの追加] をクリックして追加します。

ssh-agent が実行されているかどうかを確認するには

ps -e | grep [s]sh-agent 」と入力して、ssh-agent が実行されているかどうかを確認します。ssh-agent が実行されている場合、次の応答が表示されます。

$ ps -e | grep [s]sh-agent
 9060 ?? 0:00.28 /usr/bin/ssh-agent -l

エージェントが実行されていない場合、ターミナルで応答は返されません。この場合、次のコマンドを使用して、エージェントを手動で開始します。

$ ssh-agent /bin/bash

Windows で Sourcetree を使用している場合

システム トレイで、Pageant が実行されていることを確認します。

リストに含まれていない任意のキーを追加するには、[Add key] をクリックします。

最終更新日 2020年11月23日)
次でキャッシュ 1:39 AM on Oct 16, 2021 |

その他のヘルプ