【Bitbucket SSH接続】The authenticity of host can't be establishedエラー

【Bitbucket SSH接続】The authenticity of host can't be establishedエラー

Bitbucketリポジトリのクローンでauthenticityエラー

初めてのBitbucketリポジトリのクローンでエラー・・・。

% git clone git@bitbucket.org:test/sample.git

Cloning into 'sample'...
The authenticity of host 'bitbucket.org (100.100.100.00)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxx.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'bitbucket.org' (ED25519) to the list of known hosts.
git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

どうやらSSHキーを設定していなかった。

macOSにOpenSSHをインストールする

Homebrewを使用してOpenSSHの新しいバージョンをインストールします。

% brew install openssh

OpenSSH が正常にインストールされたことを確認するには、次のコマンドを実行します。

% ssh -V

OpenSSH_9.8p1, LibreSSL 3.3.6

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

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

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

ちなみに、すでに実行されているかどうかを確認するには、psコマンドを実行します。

ssh -agent がすでに実行されている場合は、以下のように表示されます。

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

エージェントを起動するには、次のコマンドを実行します。

% eval $(ssh-agent)

また、このコマンドを~/.zshrcまたは同等のシェル構成ファイルに追加する必要がある場合があります。(自分の場合は不要でした)

このコマンドをシェル構成ファイルに追加すると、ターミナルを開いたときにエージェントが実行されるようです。

SSHキーペアを作成する

次に、SSH キー ペアを作成します。

1. ターミナルからホーム ディレクトリに移動

% cd ~

2. ssh-keygenを使用してSSHキーペアを生成

% ssh-keygen -t ed25519 -b 4096 -C "Bitbucket メールアドレス" -f ssh-key-name(なんでもOK)
  • Bitbucket メールアドレス:Bitbucket Cloud アカウントに関連付けられたメール アドレス
  • ssh-key-name:キーの出力ファイル名(今回はbitbucket_workに設定)

パスフレーズの入力を求められた場合は、パスワードを入力するか、パスワードを空のままにすることができます。

パスワードを入力すると、Bitbucket Cloudに接続するGit コマンド (git push、git pull、git fetch など) を使用するなど、SSH が使用されるたびにパスワードの入力を求められます。

(自分は空白にしました)

パスワードを入力すると、デバイスにアクセスできる他のユーザーがキーを使用できなくなります。

完了すると、ssh-keygen は次の2 つのファイルを出力します。

  • {ssh-key-name} — 秘密鍵
  • {ssh-key-name}.pub — 公開鍵

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

以下のコマンドを実行し、ssh-key-nameを秘密鍵の名前に置き換えます。

% ssh-add ~/bitbucket_work

Identity added: /Users/name/bitbucket_work (mail@gmail.com)

Bitbucketに接続するときに正しいSSHキーが使用されるようにするには、次の設定でSSH構成ファイル ( ~/.ssh/config ) を更新 or 作成します。

Host bitbucket.org
  AddKeysToAgent yes
  IdentityFile ~/.ssh/bitbucket_work

Bitbucket Cloudに公開鍵を追加

最後にユーザーアカウントにSSH キーを追加します。

  1. 右上の歯車(設定)を選択
  2. ドロップダウンのPersonal settingsを選択
  3. セキュリティ > SSH キーを選択
  4. キーの追加
  5. ラベルはわかりやすい名前でOK
  6. Keyは公開SSHキーファイル ( bitbucket_work.pub ) をテキスト エディターで開きコピペする
  7. 鍵を追加して完了

SSH認証ができることを確認

SSHキーが正常に追加されたこと確認するには、次のコマンドを実行します。

% ssh -T git@bitbucket.org

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

再度Cloneを試す

無事成功しました!

% git clone git@bitbucket.org:test/sample.git
Cloning into 'sample'...
remote: Enumerating objects: 38512, done.
remote: Counting objects: 100% (5557/5557), done.
remote: Compressing objects: 100% (4766/4766), done.
remote: Total 38512 (delta 4160), reused 881 (delta 685), pack-reused 32955 (from 1)
Receiving objects: 100% (38512/38512), 57.24 MiB | 7.73 MiB/s, done.
Resolving deltas: 100% (29988/29988), done.

Anycloudではプロダクト開発の支援を行っています

プロダクト開発をお考えの方はぜひAnycloudにご相談ください。

まずは相談する

記事を書いた人

Matsuura

エンジニア

Matsuura

Twitter

Anycloudでエンジニアしてます!主にFlutterやWebフロントをやっていて、最近はバックエンドやインフラに挑戦・苦戦中。