Linux で個人用 SSH キーをセットアップする

Git CLI から Bitbucket Cloud に接続する代替方法として、サードパーティの Git Credential Manager (GCM) を使用できます。Bitbucket Cloud アカウントに SSH アクセスを設定しない場合は、GitHub の Git Credential Manager から GCM をダウンロードしてインストールできます。GCM は SSH ではなく HTTPS で動作することに注意してください。Git のリモート環境が次のような HTTPS を使用していることをご確認ください。
git clone https://{username}@bitbucket.org/{workspace}/{repository}.git

 

セキュア シェル プロトコル (SSH) は、デバイスと Bitbucket Cloud 間の安全な接続を確立するために使用されます。接続は、非公開 SSH キーから生成される公開 SSH キーを使用して認証されます (非公開/公開キーペアとも呼ばれます)。安全な (暗号化された) 接続を使用して、ローカル デバイスと Bitbucket Cloud 間でソース コードを安全に送信します。SSH を使用して Bitbucket Cloud に接続するようにデバイスをセットアップするには、次の操作が必要です。

  1. OpenSSH をデバイスにインストールします。

  2. SSH エージェントを起動します

  3. SSH キー ペアを作成します

  4. SSH エージェントにキーを追加します

  5. Bitbucket Cloud に公開キーを提供します

  6. SSH 認証が機能していることを確認します

Linux で OpenSSH をインストールする

OpenSSH をインストールするには、Linux ディストリビューションで提供されている OpenSSH パッケージを使用することをお勧めします。

  • Debian、Ubuntu、Linux Mint、およびその他の Debian ベースのディストリビューションの場合は、以下を入力します。

    1 sudo apt update && sudo apt install openssh-client
  • Fedora、CentOS、Red Hat Enterprise Linux、Oracle Linux、およびその他の Fedora ベースのディストリビューションの場合は、以下を入力します。

    1 sudo dnf install openssh-clients
  • Arch Linux およびその他の Arch Linux ベースのディストリビューションの場合は、以下を入力します。

    1 sudo pacman -Sy openssh
  • SUSE Linux、openSUSE Linux、およびその他の SUSE ベースのディストリビューションの場合は、以下を入力します。

    1 sudo zypper install openssh

ターミナルで、次のコマンドを実行して OpenSSH が正常にインストールされていることを確認します。

1 ssh -V

出力には、インストールされている OpenSSH のバージョンが表示されるはずです。

SSH エージェントを起動する

git が SSH キーを使用できるようにするには、SSH エージェントがデバイス上で実行されている必要があります。

すでに実行されているかどうかを確認するには、ps コマンドを実行します。ssh-agent がすでに実行されている場合は、出力に次のように表示されるはずです。

1 2 $ ps -ax | grep ssh-agent 19998 ?? 0:00.20 /usr/bin/ssh-agent -l

エージェントを起動するには、以下を実行します。

1 eval $(ssh-agent)

このコマンドを、~/.bashrc~/.zshrc~/.profile または同等のシェル設定ファイルに追加する必要がある場合があります。このコマンドをシェル設定ファイルに追加すると、ターミナルを開いたときにエージェントが実行されていることを確認できます。

SSH キー ペアを作成する

SSH キー ペアを作成するには、以下の手順に従います。

  1. ターミナルを開いて、cd を使用してホームまたはユーザー ディレクトリに移動します。たとえば次のようにします。

    1 cd ~
  2. ssh-keygen を使用して、次のように SSH キー ペアを生成します。

    1 ssh-keygen -t ed25519 -b 4096 -C "{username@emaildomain.com}" -f {ssh-key-name}

    ここで:

    • {username@emaildomain.com} は、仕事用のメール アカウントなど、Bitbucket Cloud アカウントに関連付けられているメール アドレスです。

    • {ssh-key-name} はキーの出力ファイル名です。bitbucket_work のような識別可能な名前を使用することをお勧めします。

  3. [パスフレーズを入力] のプロンプトが表示された際には、パスワードを入力するか、パスワードを空白のままにできます。パスワードを入力すると、Bitbucket Cloud にコンタクトする Git コマンド (git push、git pull、git fetch など) を使用した場合のように、SSH を使用するたびにこのパスワードの入力を求められます。パスワードを入力した場合は、デバイスにアクセスできる他のユーザーがそのキーを使用できなくなります。

完了すると、ssh-keygen によって次の 2 つのファイルが出力されます。

  • {ssh-key-name}非公開キーです。

  • {ssh-key-name}.pub公開キーです。

SSH エージェントにキーを追加する

SSH エージェント (ssh-agent) に SSH キーを追加するには、次の手順に従います。

  1. {ssh-key-name}非公開キーの名前に置き換えて、次のコマンドを実行します。

    1 ssh-add ~/{ssh-key-name}
  2. Bitbucket に接続する際に正しい SSH キーが使用されるように、次の設定で SSH 設定ファイル (~/.ssh/config) を更新または作成します。

    1 2 3 Host bitbucket.org AddKeysToAgent yes IdentityFile ~/.ssh/{ssh-key-name}

    ここで、{ssh-key-name}ssh-agent に追加された後の非公開キー ファイルの場所です。

Bitbucket Cloud に公開キーを提供する

ユーザー アカウントに SSH キーを追加するには、次の手順に従います。

  1. 上部のナビゲーション バーにある [設定] (歯車アイコン ) を選択します。

  2. [設定] ドロップダウン メニューから [Bitbucket 個人設定] を選択します。

  3. [セキュリティ] で、[SSH キー] を選択します。

  4. [キーを追加] を選択します。

  5. [SSH キーを追加] ダイアログで [ラベル] を入力して、追加するキーを識別しやすくします。たとえば、Work Laptop <Manufacturer> <Model> などとします。意味のあるラベルを付けると、将来古いキーや不要なキーを特定するのに役立ちます。

  6. 公開 SSH キー ファイル (公開キーには .pub というファイル拡張子が付いています) をテキスト エディターで開きます。公開キーは、ユーザー (またはホーム) ディレクトリの .ssh/ ディレクトリにあります。内容は次のようになります。

    1 ssh-ed25529 LLoWYaPswHzVqQ7L7B07LzIJbntgmHqrE40t17nGXL71QX9IoFGKYoF5pJKUMvR+DZotTm user@example.com
  7. 公開キーファイルの内容をコピーして、[SSH キーを追加] ダイアログの [キー] フィールドに貼り付けます。

  8. [キーを追加] を選択します。

    • キーが正常に追加されると、ダイアログが閉じて [SSH キー] ページにキーがリストされます。

    • エラー「That SSH key is invalid」が表示された場合は、公開キーの内容全体 (.pub ファイル) をコピーしていることをご確認ください。

SSH 認証が機能することを確認する

SSH キーが正常に追加されたことをテストするには、デバイスでターミナルを開いて次のコマンドを実行します。

1 ssh -T git@bitbucket.org

SSH が SSH キーを使用して Bitbucket に正常に接続できれば、コマンドは次のような出力を生成します。

1 2 3 authenticated via ssh key. You can use git to connect to Bitbucket. Shell access is disabled

 

さらにヘルプが必要ですか?

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