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

You may see this error when trying to use the ssh-add command. Most likely your ssh-agent did not start properly. To start the agent, run the following:

macOS / Linux

$ eval `ssh-agent`
Agent pid 9700

Windows

$ eval $(ssh-agent)
Agent pid 9700

Then, continue using the ssh-add command to add your keys.

unexpected token

If your .bashrc doesn't launch correctly, you may see these types of messages:

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)」の真正性が確立できません。

Because Bitbucket hosts only allow Git to make SSH connections, the first time you access Bitbucket using the SSH URL, your SSH client checks to see if the Bitbucket host is a known host. If the host is not in your ~/.ssh/known_hosts file, SSH warns you that it's adding the Bitbucket host to known hosts if you continue:

$ hg clone ssh://hg@bitbucket.org/newuserme/mquotefork testkey
The authenticity of host 'bitbucket.org (104.192.143.1)' can't be established.
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)?

When you see this warning, you can enter 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

If you don't have any keys loaded in the agent: $ ssh -T hg@bitbucket.org
Permission denied (publickey). If your local machine is unable to get the bitbucket.org IP address: $ ssh -T hg@bitbucket.org
ssh: connect to host bitbucket.org port 22: Connection refused If your connection is successful: $ ssh -T hg@bitbucket.org
conq: logged in as teamsinspace.
You can use git or hg to connect to bitbucket. Shell access is disabled.

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

If you receive a Permission denied (publickey) error, and you've already verified that your key is loaded into your SSH agent and into your Bitbucket account, you can get more information about your connection issues:

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

To check whether you're running multiple versions of the ssh-agent

Enter ps at the command line when you have at least one loaded SSH key.

$ 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 – ユーザーが実行しているプロセス。

If this response returns more than one ssh-agent, kill all versions of the agents and restart ssh-agent.

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

$ kill 5192

To restart the ssh-agent, run: $ eval 'ssh-agent'

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

To list your loaded keys, enter ssh-add -l (that's the letter, not the number). This example returns two different keys:

$ 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)

If you don't see the SSH key you want to use, add it by entering ssh-add followed by the path to the private key file:

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

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

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

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

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

To check that the ssh-agent is running

Enter ps -e  | grep [s]sh-agent to check whether it's running. If the ssh-agent is running, you'll see the following response:

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

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

$ ssh-agent /bin/bash

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

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

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

その他のヘルプ