Use the SSH protocol with Bitbucket Cloud

リダイレクトのお知らせ

This page will redirect to /bitbucket/set-up-an-ssh-key-728138079.html .

Bitbucket にリモート接続するたびにユーザー名とパスワードを入力しなくても認証が可能な SSH 接続の設定を行います。Bitbucket への接続には、セキュア ハイパーテキスト転送プロトコル(HTTPS)かセキュア シェル(SSH)のいずれかを使用できます。しかし、一日に何回もプッシュやプルを実行する場合は、SSH の方が HTTPS よりもいくつかの点でメリットがあります。

HTTPS:

  • 接続するたびに、ユーザー名とパスワードを入力する必要があります。
  • Bitbucket から頻繁にプルやプッシュを実行する場合に適しています。

SSH:

  • プッシュやプルのたびにパスワードを入力する必要がありません。
  • Bitbucket から一日に何回もプッシュやプルを実行する開発者に効果が大きいプロトコルです。

このページの内容

関連ページ

SSH と Bitbucket が連携して動作する仕組み

Bitbucket で SSH を使用するには、秘密鍵(ローカルコンピュータ上)と鍵のペアを作成する公開鍵(Bitbucket にアップロード済み)を含む SSH のアイデンティティを作成します。ローカル システムと Bitbucket の間に SSH を設定したあとは、システムは鍵ペアを使用して、関連するアカウントがアクセス権を持つすべてに対してユーザーを自動認証します。

セキュリティ上の理由から、少なくとも年に一度は新しい SSH 鍵を生成し、アカウントの既存の鍵と交換することをお勧めします。

SSH のアイデンティティと Bitbucket を使用して作業する際に必要となる重要な概念がいくつかあります。

  • アイデンティティの公開鍵をアカウントをまたいで再利用することはできません。個々の Bitbucket アカウントごとに SSH アイデンティティを作成する必要があります。 
  • 複数のアイデンティティを 1 つの Bitbucket アカウントに関連付けることが可能です。

    そのように設定する理由を教えてください。

    たとえば、仕事用のコンピュータや自宅のコンピュータからリポジトリにアクセスしている場合などは、同じアカウントに複数のアイデンティティを作成します。スクリプトを使用して、リポジトリで DVCS 操作を実行したい場合、複数のアイデンティティを作成する方法もあります - スクリプトはパスフレーズが空の状態で公開鍵を使用するため、人の手を介することなくスクリプトを実行できます。

  • RSA(R. R ivest、A. S hamir、L. A dleman が発案者)およびデジタル署名アルゴリズム(DSA)は、鍵暗号化アルゴリズムです。Bitbucket は両方のタイプのアルゴリズムをサポートしています。自分が最も使いやすく、利用可能な暗号化方式を使用して、アイデンティティを作成するべきです。

複数のアイデンティティを持っている場合は、ローカルシステムに認証エージェント プログラムが必要になります。このプログラムはバックグラウンドで実行されます。エージェントにすべての鍵をロードすると、エージェントが認証を管理します。Windows環境で一般的な認証エージェントは Pageant です。マック OSX および Linux システムでは、 ssh-agent がより一般的です。

必要なアイデンティティが 1 個か、複数かを判断する

異なる Bitbucket アカウントを 2 つ持っている場合にのみ、2 つのアイデンティティ(鍵)を作成する必要があります。典型的なユースケースは、仕事関連の Bitbucket アカウントと個人の Bitbucket アカウントを持つプログラマーです。各アカウントには独自の SSH 鍵が必要です。  

SSH 鍵はアイデンティティ ベースの認証を行います。つまり、さまざまなシステムから同じアイデンティティをどれだけでも使用でき、そのアイデンティティでどれだけでもサービスに接続できることになります。この方法をとるべきかどうかについては、セキュリティをどれだけ意識しているか、またはどれだけ必要としているかによります。

オリジナルごとに個別の秘密鍵を確実に持っている必要があります。つまり、秘密鍵ごとに(バックアップを除けば) 1 つのコピーが存在します。(たとえば、マシンが互いの shosts.equiv ファイル内に登録されて場合など)1 つのマシンに入り込めるなら、基本的に他のマシンにもアクセスできるような状況であれば、密接に関連したマシン間で同じ秘密鍵を使用してもかまいません。異なるネットワーク(たとえば、自宅と職場)から同じ秘密鍵を使用してログインしないでください。また、2 人のユーザー間で決して秘密鍵を共有しないでください。ラップトップと他のマシンの間でも決して秘密鍵を共有しないでください。

アイデンティティの保護についての懸念がない場合は、アイデンティティを複数のマシンにコピーできます。懸念がある場合、または複数の Bitbucket アカウントがある場合は、複数のアイデンティティを作成する必要があります。

単一または複数のアイデンティティの設定

以下のページでは、Bitbucket に単一のアイデンティティを設定する方法について情報を提供しています。

以下のページでは、複数のアイデンティティを設定する方法について情報を提供しています。

The section on Windows with TortoiseHG assumes you have installed PuTTY. If you have problems, please try to resolve your problems using our Troubleshoot SSH issues page.

接続プロトコルによるリポジトリ URL 形式

リポジトリにアクセスするために使用する URL は、接続プロトコル(HTTPS または SSH)と DVCS プログラムによって異なります。次の表は、Bitbucket がサポートするケースごとの URL 形式を示しています。

  SSH URL 形式 HTTPS URL 形式
Mercurial ssh://hg@bitbucket.org/<accountname>/<reponame>/

https://accountname@bitbucket.org/<accountname>/<reponame>

Git

git@bitbucket.org:<accountname>/<reponame>.git

もしくは

ssh://git@bitbucket.org/<accountname>/<reponame>.git

https://<accountname>@bitbucket.org/<accountname>/<reponame>.git

SSH 形式では、アカウント名は git@bitbucket.org または hg@bitbucket.org の後に表示されます。HTTPSフォーマットでは、アカウント名は git@bitbucket.org または hg@bitbucket.org の前に表示されます。

Bitbucket では、Git と Mercurial の両方のリポジトリ固有の URL がリポジトリの概要ページに表示されます。

既知のホストまたは Bitbucket の公開鍵フィンガープリント

SSH 経由での接続が可能な各サーバーでは、接続しているクライアントに独自の公開鍵を提供します。SSH は既知のホストリスト内にキーを格納します。マック OSX と Linux では、このリストは ~/.ssh/known_hosts ファイル内にあります。Windows では、PuTTYgen が情報を HKEY_CURRENT_USER\SoftWare\SimonTatham\PuTTY\SshHostKeys レジストリキー内に保存しています。クライアントが再接続するたびに、ホストが あなたのアイデンティティを確認するのと同様に、SSH は既知のホストに対してサーバーのアイデンティティを確認します。この双方向  機構が中間者攻撃を防止します。

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

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

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

技術的には、最初にサーバーに接続する前に、サーバーの公開ホスト鍵を記録しておく必要があります。ネットワーク内のセキュリティ プロトコルに応じて、システム管理者は承認された既知のホストの中央に位置するリストを保持することができます。Bitbucket server の公開鍵のフィンガープリントは、以下のとおりです。

SHA256 形式
2048 SHA256:zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A bitbucket.org (RSA)
1024 SHA256:RezPkAnH1sowiJM0NQXH90IohWdzHc3fAisEp7L3O3o bitbucket.org (DSA)
md5 形式
97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40 (RSA)
35:ee:d7:b8:ef:d7:79:e2:c6:43:9e:ab:40:6f:50:74 (DSA)

既知のホストでの保存に適した形式を取得するには、次の  SSH-キースキャン コマンドを使用します。

$ ssh-keyscan -t rsa bitbucket.org
# bitbucket.org SSH-2.0-OpenSSH_5.3
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==SSH on Port 443

 

 

 

Last modified on Aug 17, 2017

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

はい
いいえ
この記事についてのフィードバックを送信する

Not finding the help you need?

コミュニティへの質問

Powered by Confluence and Scroll Viewport.