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

このページの内容

Still need help?

アトラシアン コミュニティをご利用ください。

コミュニティへの質問

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

If you're using Sourcetree, some of these solutions come with Sourcetree steps. However, you may need to using the command line for others. From a repository in Sourcetree, you can find the command line by clicking Terminal in the top right.

このページの内容

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

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


Permission denied (publickey)

もしくは

No suitable response from remote

もしくは

repository access denied

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

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

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

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

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

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

    1. Bitbucket で、左下にあるご使用のアバターから [Bitbucket の設定] を選択します。
      [アカウント設定] ページが表示されます。
    2. [SSH キー] をクリックします。
      [SSH キー] ページにすべての既存のキーが一覧表示されます。
    3. If you don't have any keys listed, you can follow our Set up an SSH key documentation to set one up.
  • キーが SSH エージェントにロードされていない

    If your SSH agent doesn't know to offer Bitbucket a key, the connection fails. You may run into this issue if you've recently restarted your system.

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

    ターミナルから

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

    $ ssh-add -l

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

    $ ssh-add ~/.ssh/<秘密キーのファイル>
    Sourcetree から

    Windows:

    システム トレイで Pageant アイコンをダブルクリックして、[Pageant キー リスト] ダイアログを開きます。


    SSH キーが表示されない場合は、[Add Key] をクリックします


Could not open a connection to your authentication agent

ssh-add コマンドを使用しようとしたときにこのエラー メッセージが表示されることがあります多くの場合、ssh-agent が適切に開始されていません。エージェントを開始するには、以下を実行します。


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

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

line19: syntax error near unexpected token 'then'
line 19: ' if[ $? -eq 0 ]; then '
これらのメッセージは、ブラウザーからカット アンド ペーストを実行した時にエラーが発生したことを示しています。このエラーは、Chrome の使用時に一般的に見られます。Firefox など別のブラウザーを試してください。

Operation timed out

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


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

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


The authenticity of host 'bitbucket.org (104.192.143.1)' can't be established.

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

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

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


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

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

Depending on the security protocols in your network, the system administrator may maintain a centrally located list of approved known hosts. For the Bitbucket server's public key fingerprints, see SSH keys.


remote: No supported authentication methods left to try!

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

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

  • Pageant が実行中で、キーがロード済みであることを確認します。
  • 対応する公開キーが使用する Bitbucket アカウントに追加されていることを確認します。

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

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

Mercurial リポジトリへのプッシュに時間がかかる場合

新しい Mercurial リポジトリのプッシュに時間がかかるか、応答しない場合、Mercurial 圧縮を有効にする必要がある場合があります (有効にしていない場合)。

SSH 圧縮の有効化は推奨されますが、必須ではありません。

既定では、Git の場合、データの送信または取得時に圧縮が自動で実行されますが、Mercurial では実行されません。SSH 圧縮を有効にすると、データの送信および取得の速度が劇的に向上する場合があります。

SSH 圧縮を有効にするには、次の手順を使用します。

  1. Mercurial グローバル構成ファイル (~/.hgrc) を開きます。
  2. 以下の行を UI セクションに追加します。

    ssh = ssh -C

    追加後のファイルは次のようになります。

    [ui]
    # Name data to appear in commits
    username = Emma <emmap1@atlassian.com>
    ssh = ssh -C
  3. ファイルを保存して閉じます。

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

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

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

Mercurial ssh://hg@altssh.bitbucket.org:443/<アカウント名>/<リポジトリ名>/
Git ssh://git@altssh.bitbucket.org:443/<アカウント名>/<リポジトリ名>/

SSH 認証のテスト

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


SSH 認証をテストするには

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


Git

Mercurial

$ ssh -T hg@bitbucket.org
エージェントにキーがロードされていない場合:
$ ssh -T hg@bitbucket.org
Permission denied (publickey).
ローカル マシンが bitbucket.orgIP アドレスを取得できない場合:
$ ssh -T hg@bitbucket.org
ssh: connect to host bitbucket.orgport 22: Connection refused
接続が正常に完了した場合:
$ 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 接続の問題を突き止めるには

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

Git

Mercurial

$ ssh -v hg@bitbucket.org

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

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

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

  • 認証のためにロードする SSH キー
エラーの場合の応答
$ ssh -v hg@bitbucket.org
OpenSSH_5.6p1,OpenSSL 0.9.8r8 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/emmap1type 1
debug1: identity file /Users/emmap1/.ssh/emmap1-certtype -1
debug1: Remote protocol version 2.0,remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3pat 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) エラー メッセージのトラブルシューティングの手順を行います。

成功した場合の応答
$ ssh -v hg@bitbucket.org
OpenSSH_5.6p1,OpenSSL 0.9.8r8 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/manthonytype 1
debug1: identity file /Users/manthony/.ssh/manthony-certtype -1
debug1: Remote protocol version 2.0,remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3pat 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)

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/<秘密キーのファイル>

If you're still having problems, try removing all the SSH keys that you don't want to use:

$ ssh-add -d ~/.ssh/<private_key_file>
On Windows using Sourcetree

Double click the Pageant icon in your system tray to open the Pagent Key List dialog.


If you don't see your SSH key, click Add Key to add it.



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

If the agent isn't running, the terminal doesn't return anything. If that's the case, start the agent manually with the following command:

$ ssh-agent /bin/bash
On Windows using Sourcetree

Make sure Pageant is running in your system tray:

Click Add Key to add any key not included in the list.

最終更新日 2018 年 5 月 22 日

この翻訳に満足しましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.