SSH の問題のトラブルシューティング
このページの内容
関連コンテンツ
- Troubleshooting SSH issues
- Testing your SSH authentication
- [PROTOCOL_ERROR] Received CHANNEL_SUCCESS on unknown channel
- SSH clones fail with "WindowClosedException: Already closed"
- SSH not working after Bitbucket Server upgrade
- Troubleshooting Network Issues
- Why can't I SSH to my Elastic Instance?
- Hipchat Server SSL Installation and Troubleshooting Guide
- Troubleshooting Bitbucket Git issues
- Permission denied error occurring while connecting to SSH even though the public/private keys are added correctly
robots | noindex |
robots | noindex |
robots | noindex |
SSH で問題が発生した場合、以下のことを試して問題のトラブルシューティングを行います。
Sourcetree を使用している場合、これらのソリューションの一部は Sourcetree でのステップに含まれます。ただし、コマンド ラインの使用が必要となる場合もあります。Sourcetree のリポジトリで右上の [ターミナル] ををクリックすると、コマンド ラインを見つけることができます。
エラー メッセージのトラブルシューティング
SSH 経由で認証中に次のエラー メッセージが表示されることがあります。
Permission denied (publickey)
または
No suitable response from remote
または
repository access denied
When attempting to clone, push, or pull over SSH with Git or Mercurial, you may receive one of these messages if Bitbucket couldn't authenticate with the keys that your SSH agent offered.
このようなメッセージが表示される最も一般的な理由は以下のとおりです。
接続の試行時に sudo を使用した
ssh-agent は、ルート レベルではなくユーザー レベルで実行されるため、クローン、プッシュ、またはプルの実行時に sudo を使用しないでください。
公開キーが Bitbucket にロードされていない
公開キーが Bitbucket にロードされているかどうかを確認するには、以下を実行します。
- Bitbucket で、左下にあるアバターから [個人設定] を選択します。
[アカウント設定] ページが表示されます。 - [SSH キー] をクリックします。
[SSH キー] ページにすべての既存のキーが一覧表示されます。 - 一覧にキーが表示されない場合、「SSH キーの設定」ドキュメントに従って SSH キーを 1 つ設定します。
- Bitbucket で、左下にあるアバターから [個人設定] を選択します。
キーが SSH エージェントにロードされていない
SSH エージェントが Bitbucket にキーを提供していない場合、接続に失敗します。システムを最近再起動している場合にこの問題が発生することがあります。
SSH エージェントが提供しているキーを調べ、エージェントに追加する手順は次のとおりです。
ターミナルからSSH キーがロードされていることを確認します。
$ ssh-add -l
キーが一覧に表示されない場合、「
ssh-add
」に続けて秘密キー ファイルへのパスを入力して追加します。$ ssh-add ~/.ssh/<private_key_file>
Sourcetree からWindows:
システム トレイで Pageant (PuTTY 認証エージェント) アイコンをダブルクリックして [Pageant Ket List] ダイアログを開きます。
SSH キーが表示されない場合は、[キーの追加] をクリックします。
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
次に、引き続き ssh-add
コマンドを使用してキーを追加します。
unexpected token
.bashrc
が正しく起動しない場合、以下のようなメッセージが表示される場合があります。
line19: syntax error near unexpected token 'then'
line 19: ' if[ $? -eq 0 ]; then '
Operation timed out
タイムアウトした操作がある場合は、以下のメッセージまたは類似のメッセージが表示されます。
ssh: connect to host bitbucket.org port 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==
ネットワーク内のセキュリティ プロトコルによっては、システム管理者は承認された既知のホストをまとめた一覧を保持する場合があります。Bitbucket のサーバーの公開キーのフィンガープリントについては、「SSH キー」を参照してください。
remote: No supported authentication methods left to try!
このエラーは、Windows で Sourcetree を使用して SSH による認証を実行しようとすると発生することがあります。
このエラーを修正するには、次の点を確認します。
- Pageant が実行中で、キーがロード済みであることを確認します。
- 対応する公開キーが使用する Bitbucket アカウントに追加されていることを確認します。
他の SSH 問題のトラブルシューティング
エラー メッセージが表示されずに次のような SSH の問題が生じる場合もあります。
Mercurial リポジトリへのプッシュに時間がかかる場合
新しい Mercurial リポジトリのプッシュに時間がかかるか、応答しない場合、Mercurial 圧縮を有効にする必要がある場合があります (有効にしていない場合)。
SSH 圧縮の有効化は推奨されますが、必須ではありません。
既定では、Git の場合、データの送信または取得時に圧縮が自動で実行されますが、Mercurial では実行されません。SSH 圧縮を有効にすると、データの送信および取得の速度が劇的に向上する場合があります。
SSH 圧縮を有効にするには、次の手順を使用します。
- Mercurial グローバル構成ファイル (
~/.hgrc
) を開きます。 以下の行を UI セクションに追加します。
ssh = ssh -C
追加後のファイルは次のようになります。
[ui] # Name data to appear in commits username = Emma <emmap1@atlassian.com> ssh = ssh -C
- ファイルを保存して閉じます。
ポート 22 がブロックされている場合
ネットワーク管理者は、ポート 22 上での SSH の外部接続をブロックすることがあります。ネットワークでこのポートがブロックされている場合、Bitbucket は、代替のホスト名とポートの組み合わせを提供します。
代わりに、altssh.bitbucket.org
をポート 443 経由で使用します。通常、ポート 443 は HTTPS 用に使用されるため、管理者は外部の Web 参照用にこのポートを開いています。この場合、使用可能な URL は以下のとおりです。
Mercurial | ssh://hg@altssh.bitbucket.org:443/<account_name>/<repo_name>/ |
---|---|
Git | ssh://git@altssh.bitbucket.org:443/<account_name>/<repo_name>/
|
SSH 認証のテスト
このセクションのコマンドを使用して SSH の認証に関する問題のトラブルシューティングを行います。
SSH 認証をテストするには
以下のコマンドは SSH キーについて SSH エージェントをチェックしてから、その秘密キーが既存の Bitbucket アカウントの公開キーと一致するかどうかをチェックします。
Git
$ ssh -T git@bitbucket.org
Mercurial
$ ssh -T hg@bitbucket.org
$ ssh -T hg@bitbucket.org
Permission denied (publickey).
$ 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.
You can use git or hg to connect to bitbucket. Shell access is disabled.
SSH 接続の問題を突き止めるには
"Permission denied (publickey)
" エラーが表示されていて、キーが SSH エージェントと Bitbucket アカウントで読み込まれていることを確認済みの場合、接続の問題の詳細情報を取得できます。
Git
$ ssh -v git@bitbucket.org
Mercurial
$ ssh -v hg@bitbucket.org
このコマンドにより取得できる情報のタイプには以下のようなものがあります。
ターミナルが読み取っている SSH 構成ファイル
IP アドレスがローカル マシンに接続されていること
- 認証のためにロードする SSH キー
$ 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)
エラー メッセージのトラブルシューティングの手順を行います。
$ 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>
システム トレイで Pageant アイコンをダブルクリックして、Pageant の Key List ダイアログを開きます。
SSH キーが表示されない場合、[キーの追加] をクリックして追加します。
ssh-agent
が実行されているかどうかを確認するには
「
ps -e | grep [s]sh-agent
」と入力して、実行されているかどうかを確認します。ssh-agent
が実行されている場合、次の応答が表示されます。
$ ps -e | grep [s]sh-agent
9060 ?? 0:00.28 /usr/bin/ssh-agent -l
エージェントが実行されていない場合、ターミナルで応答は返されません。この場合、次のコマンドを使用して、エージェントを手動で開始します。
$ ssh-agent /bin/bash
システム トレイで、Pageant が実行されていることを確認します。
リストに含まれていない任意のキーを追加するには、[Add key] をクリックします。
関連コンテンツ
- Troubleshooting SSH issues
- Testing your SSH authentication
- [PROTOCOL_ERROR] Received CHANNEL_SUCCESS on unknown channel
- SSH clones fail with "WindowClosedException: Already closed"
- SSH not working after Bitbucket Server upgrade
- Troubleshooting Network Issues
- Why can't I SSH to my Elastic Instance?
- Hipchat Server SSL Installation and Troubleshooting Guide
- Troubleshooting Bitbucket Git issues
- Permission denied error occurring while connecting to SSH even though the public/private keys are added correctly