bitbucketへの接続をsshでする方法

2018.9.26

大まかな作業は、githubでの手順と同じです。

環境

ssh鍵の作成

git-bashを使用して秘密鍵と公開鍵を作ります。

$ ssh-keygen -t rsa -C "mail@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/ユーザ名/.ssh/id_rsa): keykey
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in keykey.
Your public key has been saved in keykey.pub.
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX mail@example.com
The key's randomart image is:
+---[RSA 2048]----+
|    XXXXXXXXX    |
|     XXXXXXXXX   |
|      XXXXXXX    |
|       XXXXXXXXXX|
|      XXXXXXXXXXX|
|       XXXXXXXXXX|
|        XXXXXXXXX|
|      XXXXXXXX   |
|      XXXXXXX    |
+----[SHA256]-----+

対話型で質問して来ます。

生成するファイル名を入力します。ファイル名は好きなものでOKです。

Enter file in which to save the key (/c/Users/ユーザ名/.ssh/id_rsa): keykey

鍵のパスワード。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

パスワードを指定すると鍵を使用するときにパスワードを尋ねられます。

パスワードを指定しなければ、パスワード入力無しで鍵を使用できるようになります。

コマンドが成功すると2つのファイルが生成されます。

keykey
keykey.pub

keykeyが秘密鍵、keykey.pubが公開鍵になります。

後ほど公開鍵の方をbitbucketへ登録します。

生成したファイルは、下記の場所に移動してください。

C:\Users\ユーザ名\.ssh\

bitbucketへ公開鍵を登録する

ブラウザでbitbucketへログインします。

ログインしたら、ユーザのアイコンをクリックして、下記のように画面を進みます。

[View profile] > [設定] > [SSH 鍵] > [鍵を追加]

[SSH 鍵を追加]のダイアログが開きます。

labelには適当な文字列を入力します。作業する環境が複数ある場合はどのマシンの接続用なのか分かるようにしておくと良いでしょう。

keyに先ほど作成した、keykey.pubの内容を貼り付けます。

テキストエディタでkeykey.pubを開いてコピー&ペーストでOKです。

貼り付けたら、[鍵を追加]をクリックして完了です。

sshの設定

はじめにconfigファイルを作成します。

作成する場所は、下記です。

C:\Users\ユーザ名\.ssh\config

ファイルを作成したら、エディタで開いて下記のように記述します。

Host bitbucket.org
  Hostname bitbucket.org
  User git
  Port 22
  IdentityFile "C:\Users\ユーザ名\.ssh\keykey"
  TCPKeepAlive yes
  IdentitiesOnly yes

編集するポイントは、秘密鍵をおいている場所を指定しているところです。

.pubがついていない方のファイルを指定してください。

  IdentityFile "C:\Users\ユーザ名\.ssh\keykey"

configファイルには複数の接続先を記述することも可能です。

githubを併用する場合は下記のようになります。

Host github.com
  User git
  Hostname ssh.github.com
  Port 443
  IdentityFile "C:\Users\ユーザ名\.ssh\key"

Host bitbucket.org
  Hostname bitbucket.org
  User git
  Port 22
  IdentityFile "C:\Users\ユーザ名\.ssh\key"
  TCPKeepAlive yes
  IdentitiesOnly yes

シンボリックリンクの作成

gitのssh接続設定にも同じ内容が必要になりますので、シンボリックリンクを作成します。

コマンドプロンプトを管理者権限で起動して下記のコマンドを実行します。

mklink "C:\Program Files\Git\etc\ssh\ssh_config" "C:\Users\ユーザ名\.ssh\config"

実行して下記のように表示されれば成功です。

C:\Program Files\Git\etc\ssh\ssh_config <<===>> C:\Users\ユーザ名\.ssh\config のシンボリック リンクが作成されました

接続テスト

次のコマンドを実行して、接続のテストを行います。

$ ssh -T git@bitbucket.org

初回は次のような質問が表示されますので、yesとタイプしてエンターを押してください。

Are you sure you want to continue connecting (yes/no)? yes

下記のように表示されれば接続OKです。

logged in as bitbucketユーザ名.

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

githubの場合は下記のようにします。

$ ssh -T git@github.com

bitbucketと同じように聞いて来ますので、yesとタイプします。

    Are you sure you want to continue connecting (yes/no)? yes

次のように表示されれば成功です。

Hi githubユーザ名! You've successfully authenticated, but GitHub does not provide shell access.