[Bitbucket] SSH認証カギを設定する

Bitbucket で SSH認証カギを設定する手順を記載します。

 

 

 

1. Linux(Ubuntu)の場合

[概要]

Git を使うために、必ずしも必要というわけではないのですが、SSH認証カギを生成・登録して使用すると良い場合が多々あります。
Bitbucket で SSH認証カギを使用するための手順などを記載します。

 

[環境]

OS: (1) WSL/Ubuntu, 20.04
  (2) VirtualBox/Ubuntu, 20.04
ベースOS : Windows10 home, Version 2003

 

1-1. Bitbucket にアカウントを作成

https://bitbucket.org/ にアクセスしてアカウントを作ってください。

詳細は割愛します。

 

 

1-2. 既に公開鍵が作成されていないかを確認

SSH認証鍵はホームフォルダ下の ".ssh" フォルダに作成されます。
下記コマンドで .ssh フォルダおよびフォルダ内のファイルを確認することで、既に登録されているSSH認証鍵の状態を確認できます。

$ ls ~/.ssh

 

 

1-3. SSH認証鍵 - 公開鍵と秘密鍵を作成

複数のSSH認証鍵を登録することを想定して、Bitbucket専用フォルダに鍵を登録する手順として記載します。

下記手順でSSH認証鍵をホーム配下の .ssh/bitbucket フォルダ内に生成します。

$ mkdir ~/.ssh
$ cd ~/.ssh
$ mkdir bitbucket
$ cd bitbucket
$ ssh-keygen -t ed25519 -C hoge@foo.com          <--- "hoge@foo.com" は自分のメールアドレス
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/[ユーザ名]/.ssh/id_ed25519):/home/[ユーザ名]/.ssh/bitbucket/id_ed25519
                                                 <----- "bitbucket"フォルダへ修正してEnter
Enter passphrase (empty for no passphrase):      <-----Enterを押す
Enter same passphrase again:                     <-----Enterを押す
Your identification has been saved in /home/[ユーザ名]/.ssh/bitbucket/id_ed25519.
Your public key has been saved in /home/[ユーザ名]/.ssh/bitbucket/id_ed25519.pub.
The key fingerprint is:
SHA256:Z5I/tXZlSEIvrQgZ2jFq8vUa6FHkmxbW+jps24D9WqU hoge@foo.com
The key's randomart image is:
+--[ED25519 256]--+
|        =   .    |
|       * * . o   |
|    . + X . o +  |
|     + = O . = . |
|      + S = + . o|
|     . = O + . o |
|      o.+ E o .  |
|        +* o .   |
|       .++o      |
+----[SHA256]-----+
$

 

これで公開鍵と秘密鍵を作成できました。

 

NOTE

説明を ssh-keygen -t ed25519 へ変更しました。動作確認済みです。

  • Ed25519 は「エドワーズ曲線デジタル署名」と呼ばれる RSA より強力なアルゴリズムです。
  • Bitbucket はクライアント キー用に、Ed25519、ECDSA、RSA、DSA の4つの暗号化アルゴリズムをサポートしています。

 

キーのタイプ 最小キーサイズ (bit)
Ed25519 (ed25519) 256 ssh-keygen -t ed25519 -b 256
ECDSA (ecdsa) 256 ssh-keygen -t ecdsa -b 256
RSA (rsa) 2048 ssh-keygen -t rsa -b 2048
DSA / DSS (dsa) 1024 ssh-keygen -t dsa -b 1024

 

 

1-4. ~/.ssh/config にSSH鍵を設定

config ファイルに設定を書いていきます。無ければ以下のコマンドで作ることができます。

$ vi ~/.ssh/config

 

config ファイルに以下の情報を書き込みます。

["config"]

Host bitbucket.org
  HostName bitbucket.org
  IdentityFile ~/.ssh/bitbucket/id_ed25519
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

 

["config" (port 443 環境)]

ポート番号 22 を遮断している環境で 443 を使える場合、こちらの設定を使用してみてください。

Host bitbucket.org
  HostName altssh.bitbucket.org 
  IdentityFile ~/.ssh/bitbucket/id_ed25519
  User git
  Port 443
  TCPKeepAlive yes
  IdentitiesOnly yes

 

["config" プロキシ環境下]

proxy 環境下ではこちらのサンプルを参照ください。"ProxyCommand" の行を追加しています。

Host bitbucket.org
  HostName bitbucket.org
  IdentityFile ~/.ssh/bitbucket/id_ed25519
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes
  ProxyCommand /usr/bin/corkscrew proxy.hoge.co.jp 8080 %h %p

 

 

NOTE

私の環境では corkscrew がインストールされていなかったので、
sudo apt install corkscrew
でインストールしました。

 

config 設定は以上です。

 

 

1-5. Bitbucket へ公開鍵を設定

Bitbucket にアクセス後、左下のユーザーアイコンを選択すると「Personal settings」が見えるのでこれをクリックします。

 

 

 

以下のコマンドで公開鍵を表示し、「ssh-rsa ~ 自分のメールアドレス」をコピーします。

$ cat ~/.ssh/bitbucket/id_ed25519.pub
ed25519
**************************************************************************
**************************************************************************
mail@mail

 

"Key" の欄にコピーした公開鍵を張り付けます。

"Label" は自分がどの公開鍵かわかる名称を付けます。私は端末名を記入してみました。

複数の端末を持つ場合も共通の鍵を使用するのではなくそれぞれ異なる鍵を生成して使用するほうが良いと思います。

SSH 鍵を編集

 

「保存」ボタンをクリックしたら設定は以上で完了です。

 

 

1-6. 接続できるか確認

"ssh -T" コマンドで接続できるかを確認します。
以下のように表示されればOKです。

$ ssh -T git@bitbucket.org
authenticated via ssh key.

You can use git to connect to Bitbucket. Shell access is disabled
$

 

1-7. git clone

リモートで作成済みのリポジトリを clone してみることで最後の動作確認としてみます。
コマンドは下記の通り先頭を "git@bitbucket.org:" とします。

$ git clone git@bitbucket.org:<ユーザ名>/<リポジトリ名>.git

 

 


 

2. Windowsの場合

[概要]

Git を使うために、必ずしも必要というわけではないのですが、SSH認証カギを生成・登録して使用すると良い場合が多々あります。
Bitbucket で SSH認証カギを使用するための手順などを記載します。

 

[環境]

OS : Windows10 home, Version 2003

 

2-1. Bitbucket にアカウントを作成

https://bitbucket.org/ にアクセスしてアカウントを作ってください。

詳細は割愛します。

 

 

2-2. 既に公開鍵が作成されていないかを確認

SSH認証鍵はホームフォルダ下の ".ssh" フォルダに作成されます。
下記コマンドで .ssh フォルダおよびフォルダ内のファイルを確認することで、既に登録されているSSH認証鍵の状態を確認できます。

> dir %homedrive%%homepath%\.ssh

 

 

2-3. SSH認証鍵 - 公開鍵と秘密鍵を作成

複数のSSH認証鍵を登録することを想定して、Bitbucket専用フォルダに鍵を登録する手順として記載します。

下記手順でSSH認証鍵をホーム配下の .ssh/bitbucket フォルダ内に生成します。

> %homedrive%
> cd %homepath%
> mkdir .ssh
> cd .ssh
> mkdir bitbucket
> cd bitbucket
> ssh-keygen -t ed25519 -C hoge@foo.com          <--- "hoge@foo.com" は自分のメールアドレス
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\[ユーザ名]/.ssh/id_ed25519): c:\users\[ユーザ名]/.ssh/bitbucket/id_ed25519
                                                 <----- "bitbucket"フォルダへ修正してEnter
Enter passphrase (empty for no passphrase):      <-----Enterを押す
Enter same passphrase again:                     <-----Enterを押す
Your identification has been saved in c:\Users\[ユーザ名]/.ssh/bitbucket/id_ed25519.
Your public key has been saved in c:\Users\[ユーザ名]/.ssh/bitbucket/id_ed25519.pub.
The key fingerprint is:
SHA256:Z5I/tXZlSEIvrQgZ2jFq8vUa6FHkmxbW+jps24D9WqU hoge@foo.com
The key's randomart image is:
+--[ED25519 256]--+
|        =   .    |
|       * * . o   |
|    . + X . o +  |
|     + = O . = . |
|      + S = + . o|
|     . = O + . o |
|      o.+ E o .  |
|        +* o .   |
|       .++o      |
+----[SHA256]-----+

C:\Users\[ユーザ名]\.ssh\bitbucket>

 

これで公開鍵と秘密鍵が作成できました。

 

NOTE

説明を ssh-keygen -t ed25519 へ変更しました。動作確認済みです。

  • Ed25519 は「エドワーズ曲線デジタル署名」と呼ばれる RSA より強力なアルゴリズムです。
  • Bitbucket はクライアント キー用に、Ed25519、ECDSA、RSA、DSA の4つの暗号化アルゴリズムをサポートしています。

 

キーのタイプ 最小キーサイズ (bit)
Ed25519 (ed25519) 256 ssh-keygen -t ed25519 -b 256
ECDSA (ecdsa) 256 ssh-keygen -t ecdsa -b 256
RSA (rsa) 2048 ssh-keygen -t rsa -b 2048
DSA / DSS (dsa) 1024 ssh-keygen -t dsa -b 1024

 

 

2-4. ~/.ssh/config にSSH鍵を設定

config ファイルに設定を書いていきます。無ければ以下のコマンドで作ることができます。

 

> notepad %homedrive%%homepath%\.ssh\config

 

config ファイルに以下の情報を書き込みます。

["config"]

Host bitbucket.org
  HostName bitbucket.org
  IdentityFile C:\Users\[ユーザ名]\.ssh\bitbucket\id_ed25519
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

 

["config" (port 443 環境)]

ポート番号 22 を遮断している環境で 443 を使える場合、こちらの設定を使用してみてください。

Host bitbucket.org
  HostName altssh.bitbucket.org 
  IdentityFile C:\Users\[ユーザ名]\.ssh\bitbucket\id_ed25519
  User git
  Port 443
  TCPKeepAlive yes
  IdentitiesOnly yes

 

["config" (プロキシ環境)]

proxy 環境下ではこちらのサンプルを参照ください。

"ProxyCommand" の行を追加しています。

Host bitbucket.org
  HostName bitbucket.org
  IdentityFile C:\Users\[ユーザ名]\.ssh\bitbucket\id_ed25519
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes
  ProxyCommand "C:\Program Files\Git\mingw64\bin\connect.exe" -H http://proxy.hoge.co.jp:8080 %h %p

 

 

config の設定は以上です。

 

 

2-5. Bitbucket へ公開鍵を設定

Bitbucket にアクセス後、左下のユーザーアイコンを選択すると「Personal settings」が見えるのでこれをクリックします。

 

 

 

以下のコマンドで公開鍵を表示し、「ssh-rsa ~ 自分のメールアドレス」をコピーします。

> type %homedrive%%homepath%\.ssh\bitbucket\id_ed25519.pub
ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABAQC1r2MfRiv4TGt+jTD96PLTRkYb1nn4mul2Rr
1o8a5iQ8blw3fd43c2qZYjVTIIh7N+lcUWuVXnXyWQNeVNT/IPEoaZaaur9SDAojhcA1kUMODK
0KuKDlbddxijWqJzzmEqcrZGNFEKUTVfB/ctQFZIgb0ScyGWiJWjIOVUloLqcdy6CEbHSjiLV7
rxFqPhFU/RO0QbqS58zjxWLVYP7jgJXudJ+QJcwmUlLoH1k22AEH154Q28hRNriupma8D/VyJ5
2VWWHwtgF+F6jp8G72uhn46aYmQXK3brUIv7vu/k/8lAUUNI32UrPNoxWII6rbs/lU+0vs5peh
QqVlPcjJd3 hoge@foo.com

 

"Key" の欄にコピーした公開鍵を張り付けます。

"Label" は自分がどの公開鍵かわかる名称を付けます。私は端末名を記入してみました。

複数の端末を持つ場合も共通の鍵を使用するのではなくそれぞれ異なる鍵を生成して使用するほうが良いと思います。

 

「保存」ボタンをクリックしたら設定は以上で完了です。

 

 

2-6. 接続できるか確認

"ssh -T" コマンドで接続できるかを確認します。
以下のように表示されればOKです。

$ ssh -T git@bitbucket.org
authenticated via ssh key.

You can use git to connect to Bitbucket. Shell access is disabled
$

 

 

2-7. git clone

リモートで作成済みのリポジトリを clone してみることで最後の動作確認としてみます。
コマンドは下記の通り先頭を "git@bitbucket.org:" とします。

$ git clone git@bitbucket.org:<ユーザ名>/<リポジトリ名>.git

 

 

 

ライセンス

本ページの情報は、特記無い限り下記 MIT ライセンスで提供されます。

The MIT License (MIT)

Copyright © 2021 Kinoshita Hidetoshi

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

 

 

参考

 


 

変更履歴

2024-02-29 - SSH鍵アルゴリズムを RSA から Ed25519 へ記載変更、他
2022-11-07 - ページデザイン更新
2021-07-04 - Windows の情報を追記
2021-02-07 - 新規作成

 

Programming Items トップページ

プライバシーポリシー