SSH キーをセットアップする
robots | noindex |
SSH キーのセットアップ時には、秘密キー (ローカル コンピューターに保存) と公開キー (Bitbucket にアップロード) を含むキー ペアを作成します。Bitbucket は、関連付けられているアカウントがアクセスできるすべてに対する認証にキー ペアを使用します。この双方向のメカニズムが中間者攻撃を防止します。
この最初のキー ペアが既定の SSH ID です。既定の ID 以外にキーが必要な場合、追加のキーを設定できます。
セキュリティ上の理由から、少なくとも年に一度は新しい SSH 鍵を生成し、アカウントの既存の鍵と交換することをお勧めします。
複数のアカウントで同じキーを使用することはできません。各 Bitbucket アカウントに対して新しいキーを作成する必要があります。
以下は、SSH セットアップ時のオプションです。
Windows | macOS | Linux | |
---|---|---|---|
Git | ターミナル | ||
Mercurial | Sourcetree | ターミナル |
Windows で Git 用の SSH をセットアップする
Windows で Git を使用していて、既定の ID と SSH キーを作成するには、このセクションを参照してください。既定では、システムによって全 ID のキーが /Users/<username>/.ssh
ディレクトリに追加されます。
ステップ 1. 既定のアイデンティティの設定
コマンド ラインで、「
ssh-keygen
」と入力します。Windows 7 以前の場合
「
ssh-keygen
」は Git Bash ウィンドウにのみ入力できます。コマンド プロンプトでは使用できません。このコマンドでは、キーの保存先ファイルの指定を求めるプロンプトが表示されます。
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/emmap1/.ssh/id_rsa):Enter キーを押して、既定のキーとパス、
/c/Users/<username>/.ssh/id_rsa
を承認します。特別な理由がある場合を除いて、既定のキー名を使用することをお勧めします。
既定以外の名前またはパスを持つキーを作成するには、キーのフル パスを指定します。たとえば、
my-new-ssh-key
というキーを作成するには、次のように Windows のパスを入力します。$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/emmap1/.ssh/id_rsa): c:\Users\emmap1\.ssh\my-new-ssh-keyプロンプトで、パスフレーズの入力と再入力を行います。
このコマンドは、ユーザーの既定のアイデンティティを作成し、公開鍵や秘密鍵の情報を含めます。全体の流れはこのようになります。
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/emmap1/.ssh/id_rsa):
Created directory '/c/Users/emmap1/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/emmap1/.ssh/id_rsa.
Your public key has been saved in /c/Users/emmap1/.ssh/id_rsa.pub.
The key fingerprint is: e7:94:d1:a3:02:ee:38:6e:a4:5e:26:a3:a9:f4:95:d4 emmap1@EMMA-PC.ssh
の内容を一覧表示して、キー ファイルを表示します。次のように表示されるはずです。
$ dir .ssh
id_rsa id_rsa.pubコマンドは 2 つのファイルを表示します。1 つは公開キー用 (
id_rsa.pub
など) で、もう 1 つは秘密キー用 (id_rsa
など) です。
ステップ 2. ssh-agent にキーを追加する
キーを使用するたびにパスワードを入力したくない場合は、情報を ssh-agent に追加する必要があります。
エージェントを開始するには、以下を実行します。
$ eval $(ssh-agent)
Agent pid 9700「
ssh-add
」に続けて、秘密キー ファイルへのパスを入力します。$ ssh-add ~/.ssh/<private_key_file>
Step 3. Add the public key to your Account settings
- Bitbucket で、左下にあるアバターから [個人設定] を選択します。
[アカウント設定] ページが開きます。 - [SSH キー] をクリックします。
追加済みのキーがある場合は、このページに表示されます。 .ssh/id_rsa.pub
ファイル (または任意の別の名前を指定した公開キー ファイル) を開き、コンテンツをコピーします。
最後の行にメール アドレスが表示される場合があります。メール アドレスは任意で含めます。Bitbucket で [キーの追加] をクリックします。
新しいキーの [ラベル] を入力します (例:
Default public key
)。- コピーした公開鍵を SSH キー フィールドに貼り付けます。
[保存] をクリックします。
Bitbucket からキーの追加を確認するメールがユーザーに送信されます。SSH キーを編集する
キーを追加したあとは、そのキーのラベルを編集することはできますが、キー自体を編集することはできません。キーのコンテンツを変更するには、キーを削除してから、再度追加する必要があります。
コマンド ラインに戻り、次のコマンドを入力して構成とユーザー名を確認します。
$ ssh -T git@bitbucket.org
そのキーを使用してログインできる Bitbucket アカウントが表示されます。
conq: logged in as emmap1. You can use git or hg to connect to Bitbucket. Shell access is disabled.
Permission denied (publickey)
というエラー メッセージが表示される場合、「SSH の問題のトラブルシューティング」ページでヘルプを確認します。
SSH キーのセットアップが完了したため、次回のリポジトリのクローン時に SSH URL を使用できます。HTTPS を経由してクローンしたリポジトリが既にある場合、SSH URL を使用するようにリポジトリのリモート URL を変更します。
macOS/Linux での SSH のセットアップ
Git または Mercurial を使用しているかどうかにかかわらず、macOS または Linux で既定の ID や SSH キーを作成するには、このセクションを参照してください。既定では、システムによるキーの追加先は、/Users/<yourname>/.ssh
ディレクトリ (macOS の場合) および /home/<username>/.ssh
(Linux の場合) です。
ステップ 1. 既定のアイデンティティの設定
ターミナルで、コマンド ラインに
ssh-keygen
を入力します。
このコマンドでは、キーの保存先ファイルの指定を求めるプロンプトが表示されます。$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/emmap1/.ssh/id_rsa):Enter キーまたはReturn キーを押して、既定の場所を承認します。
特別な理由がある場合を除いて、既定のキー名を使用することをお勧めします。
既定以外の名前またはパスを持つキーを作成するには、キーのフル パスを指定します。たとえば、
my-new-ssh-key
というキーを作成するには、プロンプトで次のようなパスを入力します。$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/emmap1/.ssh/id_rsa): /Users/emmap1/.ssh/my-new-ssh-keyプロンプトが表示されたら、パス フレーズの入力と確認入力を行います。
コマンドは公開鍵と秘密鍵とともに既定のアイデンティティを作成します。全体の流れは、次のようになります。$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/emmap1/.ssh/id_rsa):
Created directory '/Users/emmap1/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/emmap1/.ssh/id_rsa.
Your public key has been saved in /Users/emmap1/.ssh/id_rsa.pub.
The key fingerprint is:
4c:80:61:2c:00:3f:9d:dc:08:41:2e:c0:cf:b9:17:69 emmap1@myhost.local
The key's randomart image is:
+--[ RSA 2048]----+
|*o+ooo. |
|.+.=o+ . |
|. *.* o . |
| . = E o |
| o . S |
| . . |
| . |
| |
| |
+-----------------+~/.ssh
の内容を一覧表示して、キー ファイルを表示します。$ ls ~/.ssh
id_rsa id_rsa.pubコマンドは 2 つのファイルを表示します。1 つは公開キー用 (
id_rsa.pub
など) で、もう 1 つは秘密キー用 (id_rsa
など) です。
ステップ 2. ssh-agent にキーを追加する
キーを使用するたびにパスワードを入力したくない場合は、情報を ssh-agent に追加する必要があります。
エージェントを開始するには、以下を実行します。
$ eval `ssh-agent`
Agent pid 9700「
ssh-add
」に続けて、秘密キー ファイルへのパスを入力します。macOS
$ ssh-add -K ~/.ssh/<private_key_file>
Linux
$ ssh-add ~/.ssh/<private_key_file>
(macOS のみ) コンピューターが再起動後にパスワードを記憶するよう、
~/.ssh/config
ファイルを開き (または作成し)、ファイルに次の行を追加します。Host * UseKeychain yes
ステップ 3. (Mercurial のみ) SSH 圧縮を有効にする
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
- ファイルを保存して閉じます。
ステップ 4. アカウント設定に公開キーを追加する
- Bitbucket で、左下にあるアバターから [個人設定] を選択します。
[アカウント設定] ページが開きます。 - [SSH キー] をクリックします。
追加済みのキーがある場合は、このページに表示されます。 ターミナル ウィンドウで、公開キー ファイルの内容をコピーします。キーの名前を変更した場合、
id_rsa.pub
を公開キーのファイル名で置き換えます。Linux の場合、内容を
cat
出力できます。$ cat ~/.ssh/id_rsa.pub
macOS の場合、次のコマンドを使用して出力をクリップボードにコピーします。
$ pbcopy < ~/.ssh/id_rsa.pub
キーの出力を選択してクリップボードにコピーします。
コピー アンド ペーストがうまくできない場合は、ノートパッドでファイルを直接開くことができます。ファイルの内容を選択します (ファイル終了記号を選択しないようにご注意ください)。Bitbucket で [キーの追加] をクリックします。
新しいキーの [ラベル] を入力します (例:
Default public key
)。- コピーした公開キーを [SSH キー] フィールドに貼り付けます。
貼り付けると、最後の行にメール アドレスが表示される場合があります。キーにはメール アドレスを任意で含めます。 [保存] をクリックします。
Bitbucket からキーの追加を確認するメールがユーザーに送信されます。SSH キーを編集する
キーを追加したあとは、そのキーのラベルを編集することはできますが、キー自体を編集することはできません。キーのコンテンツを変更するには、キーを削除してから、再度追加する必要があります。
ターミナル ウィンドウに戻り、次のコマンドを入力して構成とユーザー名を確認します。
$ ssh -T git@bitbucket.org
そのキーを使用してログインできる Bitbucket アカウントが表示されます。
conq: logged in as emmap1. You can use git or hg to connect to Bitbucket. Shell access is disabled.
Permission denied (publickey)
というエラー メッセージが表示される場合、「SSH の問題のトラブルシューティング」ページを参照してください。
SSH キーのセットアップが完了したため、次回のリポジトリのクローン時に SSH URL を使用できます。HTTPS を経由してクローンしたリポジトリが既にある場合、SSH URL を使用するようにリポジトリのリモート URL を変更します。
Sourcetree on Windows での SSH のセットアップ
Git または Mercurial を使用しているかどうかにかかわらず、Sourcetree を使用して SSH キーを生成するには、このセクションを参照してください。Sourcetree で SSH キーを作成する場合、ローカル側の任意の場所に公開キーおよび秘密キーを保存できます。保存場所として SSH ディレクトリを作成しておくと、必要な時にいつでも SSH キーを参照できます。
ステップ 1. Sourcetree をインストールして Bitbucket アカウントを追加する
- Sourcetree をまだインストールしていない場合は、https://www.sourcetreeapp.com/ に進み、[Download free] ボタンをクリックします。
.exe
ファイルをクリックして Sourcetree をインストールします。詳細は、「Sourcetree のインストール」ページを参照してください。インストール後、[SSH キーをロードしますか?] というダイアログが表示される場合があります。キーを持っておらず、Sourcetree を使用してキーを作成する場合は、[いいえ] をクリックします。
インストール後、[Sourcetree: Mercurial は見つかりませんでした] というダイアログが表示される場合があります。適切なオプションを選択するか、[Sourcetree 用の組込版 Mercurial をダウンロードして一緒に使用する] を選択します。
- アカウントを追加し、[SSH] を優先プロトコルとして選択します。セットアップ中にアカウントに接続しない場合は、[リモート] をクリックして [リモート リポジトリ] ページを開き、[アカウントの追加] をクリックします。
ステップ 2. SSH キーを作成する
- [ツール] で、[SSH キーの作成またはインポート] を選択します。
- [PuTTY キー ジェネレーター] ダイアログで、[生成] ボタンをクリックします。
- SSH キーが生成されます。ポインターを空白領域に置いてください。1 〜 2 分かかる場合があります。
SSH キーの生成が完了すると、公開キーとその他の複数のフィールドが表示されます。 - [キー パスフレーズ] と [パスフレーズの確認] フィールドで、SSH キーのパスフレーズを入力します。
- [公開キーを保存] をクリックします。保存ダイアログで、公開キーを保存する場所を選択し、ファイルに "
.pub
" ファイル拡張子と名前を設定し、[保存] をクリックします。 - [秘密キーを保存] をクリックします。保存ダイアログで、秘密キーを保存する場所を選択し、ファイルの名前を付け、[保存] をクリックします。
- [PuTTY キー ジェネレーター] ダイアログを閉じます。
ステップ 3. (Mercurial のみ) SSH 圧縮を有効にする
SSH 圧縮の有効化は推奨されますが、必須ではありません。この手順を完了するには、Mercurial リポジトリをクローンして開く必要があります。
既定では、Git の場合、データの送信または取得時に圧縮が自動で実行されますが、Mercurial では実行されません。SSH 圧縮を有効にすると、データの送信および取得の速度が劇的に向上する場合があります。
SSH 圧縮を有効にするには、次の手順を使用します。
- リポジトリ ウィンドウの右上の [設定] をクリックします。リポジトリ設定の [リモート] タブが開かれます。そうでない場合は、[リモート] タブをクリックします。
- [構成ファイルの編集] をクリックし、Mercurial グローバル構成ファイル (
~/.hgrc
) を開きます。 以下の行を UI セクションに追加します。
ssh = ssh -C
ファイルは次のようになります。
[ui] # name and email (local to this repository, optional), e.g. username = Emma <emmap1@atlassian.com> ssh = ssh -C
ファイルを保存して閉じます。
ステップ 4. Pageant に秘密キーをインストール
Sourcetree には Pageant という SSH 認証エージェントが付属しています。秘密キーを Pageant にロードして自動認証することで、パスフレーズの入力は不要になります。
- システム トレイで Pageant '(PuTTY 認証エージェント) アイコンをダブルクリックして [Pageant Key List] ダイアログを開きます。
- [キーの追加] ボタンをクリックして [秘密キー ファイルの選択] ダイアログを開きます。
- ステップ 1 で保存した秘密キー ファイルに移動して、[開く] をクリックします。
- SSH キーのパスフレーズを入力して [OK] をクリックします。
Pageant によって実行中のリストにご使用のキーが表示されます。 - [閉じる] をクリックします。
ステップ 5. アカウント設定に公開キーを追加する
- Sourcetree で、[ツール] > [SSH キーの作成またはインポート] に進み、[PuTTY キー ジェネレーター] ダイアログを開きます。
- [ロード] をクリックし、SSH フォルダに移動して、秘密キーをクリックします。秘密キーが表示されていない場合、すべてのファイルを表示していることを確認します。
- SSH キーのパスフレーズを入力し、[OK] をクリックします。
- 最初のフィールドに公開キーをコピーします。
- Bitbucket で、左下にあるアバターから [個人設定] を選択します。
[アカウント設定] ページが開きます。 - [SSH キー] をクリックします。
追加済みのキーがある場合は、このページに表示されます。 - [キーの追加] をクリックします。
新しいキーの [ラベル] を入力します (例:
Default public key
)。- コピーした公開鍵を SSH キー フィールドに貼り付けます。
[保存] をクリックします。
Bitbucket からキーの追加を確認するメールがユーザーに送信されます。SSH キーを編集する
キーを追加したあとは、そのキーのラベルを編集することはできますが、キー自体を編集することはできません。キーのコンテンツを変更するには、キーを削除してから、再度追加する必要があります。
SSH キーのセットアップが完了したため、次回のリポジトリのクローン時に SSH URL を使用できます。HTTPS を経由してクローンしたリポジトリが既にある場合、SSH URL を使用するようにリポジトリのリモート URL を変更します。
Sourcetree on macOS での SSH のセットアップ
Git または Mercurial を使用しているかどうかにかかわらず、Sourcetree を使用して SSH キーを生成するには、このセクションを参照してください。Sourcetree on macOS で SSH キーを作成する場合、1 つのキーのみ作成できます。追加のキーが必要な場合は、コマンド ラインを使用する必要があります。
ステップ 1. Sourcetree をインストールして Bitbucket アカウントを追加する
- Sourcetree をまだインストールしていない場合は、https://www.sourcetreeapp.com/ に進み、[Download free] ボタンをクリックします。
- ZIP ファイルを開いて Sourcetree をインストールします。詳細は、Sourcetree のインストール ページを参照してください。
- セットアップ中にアカウントに接続しない場合は、Sourcetree メニューから [設定] を選択して [アカウント] タブからキーを追加できます。
ステップ 2. SSH キーを作成する
アカウントの SSH キーがない場合、次のステップに従います。SSH キーを持っていて、新しくキーを生成したい場合、Sourcetree を使用して 2 つ目のキーを作成することはできないため、ターミナルを使用する必要があります。
SSH キーの作成は次のようになります。
- Sourcetree で、[設定] を選択します。
- [アカウント] タブをクリックし、SSH キーを追加するアカウントを選択してから [編集] をクリックします。
- [プロトコル] を [SSH] に変更します (まだ選択されていない場合)。
キーボードの option キーを押すと、[キーの生成] ボタンが表示されます。
Sourcetree でこのアカウントの SSH キーを生成済みの場合、OPTION キーは機能しません。既存のキーを使用するか、ターミナルから別のキーを生成します。
- [キーを生成] をクリックします。
- [Passphrase] および [Confirm Passphrase] フィールドに SSH キーのパスフレーズを入力します。
- Click Create.
ステップ 3. (Mercurial のみ) SSH 圧縮を有効にする
SSH 圧縮の有効化は推奨されますが、必須ではありません。この手順を完了するには、Mercurial リポジトリをクローンして開く必要があります。
既定では、Git の場合、データの送信または取得時に圧縮が自動で実行されますが、Mercurial では実行されません。SSH 圧縮を有効にすると、データの送信および取得の速度が劇的に向上する場合があります。
SSH 圧縮を有効にするには、次の手順を使用します。
- リポジトリ ウィンドウの右上の [設定] をクリックします。リポジトリ設定の [リモート] タブが開かれます。そうでない場合は、[リモート] タブをクリックします。
- [構成ファイルの編集] をクリックし、Mercurial グローバル構成ファイル (
~/.hgrc
) を開きます。 以下の行を UI セクションに追加します。
ssh = ssh -C
ファイルは次のようになります。
[ui] # name and email (local to this repository, optional), e.g. username = Emma <emmap1@atlassian.com> ssh = ssh -C
ファイルを保存して閉じます。
ステップ 4. アカウント設定に公開キーを追加する
- Bitbucket で、左下にあるアバターから [個人設定] を選択します。
[アカウント設定] ページが開きます。 - [SSH キー] をクリックします。
追加済みのキーがある場合は、このページに表示されます。 Sourcetree の [アカウント] タブでアカウントを選択します。
- [クリップボードにコピー] ボタンをクリックして公開 SSH キーをコピーします。
Bitbucket で [キーの追加] をクリックします。
新しいキーの [ラベル] を入力します (例:
Default public key
)。- コピーした公開鍵を SSH キー フィールドに貼り付けます。
[保存] をクリックします。
Bitbucket からキーの追加を確認するメールがユーザーに送信されます。SSH キーを編集する
キーを追加したあとは、そのキーのラベルを編集することはできますが、キー自体を編集することはできません。キーのコンテンツを変更するには、キーを削除してから、再度追加する必要があります。
SSH キーのセットアップが完了したため、次回のリポジトリのクローン時に SSH URL を使用できます。HTTPS を経由してクローンしたリポジトリが既にある場合、SSH URL を使用するようにリポジトリのリモート URL を変更します。
関連コンテンツ
- 関連コンテンツがありません