1. はじめに
FreeBSDからBitbucketのリポジトリにアクセスするための手順について記述します。
2. 前提条件
FreeBSDのバージョンが9.0であること。
FreeBSDにgitがインストールされていること。(gitがインストールされていない場合はportsを使ってインストールすること。)
# cd /usr/ports/devel/git
# make install clean
3. 手順
(1) 以下のコマンドを実行して、公開鍵と秘密鍵を作成します。(パスフレーズの入力を2回求められるので、任意のパスフレーズを入力します。)
# cd ~/.ssh/
# ssh-keygen -t rsa -f bitbucket.org -C "(bitbucketに登録しているメールアドレス)"
Generating public/private rsa key pair.
(2) /etc/ssh/ssh_config に以下の内容を追加します。
Host bitbucket.org
User git
Port 22
Hostname bitbucket.org
IdentityFile ~/.ssh/bitbucket.org
TCPKeepAlive yes
IdentitiesOnly yes
(3) BitbucketのWebサイトにアクセスし、ログイン後、「Manage account」をクリックします。
(4) Account画面が表示されるので、「Account Settings」から「SSH keys」をクリックします。
(5) SSH keys画面が表示されるので、「Add key」をクリックします。
(6) Add SSH keyダイアログが表示されるので、「Key*」の項目に以下のコマンドを実行して表示された内容をコピーして貼付けます。
# cat ~/.ssh/bitbucket.org.pub
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... (bitbucketに登録しているメールアドレス)
(7) Add SSH keyダイアログで「Add key」をクリックします。
(8) 以下のコマンドを実行して、sshでの接続設定が正しいことを検証します。
# ssh -T git@bitbucket.org
実行後、以下のメッセージが表示されること。
conq: logged in as (Bitbucket上のユーザーID).
You can use git or hg to connect to Bitbucket. Shell access is disabled.
(9) 以下のコマンドを実行して、ssh-agent を起動します
# eval `ssh-agent`
(10) 以下のコマンドを実行して、ssh-agent が起動していることを確認する。
# ssh-agent
setenv SSH_AUTH_SOCK /tmp/ssh-LAdoXJd6xghL/agent.1765;
setenv SSH_AGENT_PID 1766;
echo Agent pid 1766;
*) PIDは任意となります。
(11) 以下のコマンドを実行して、秘密鍵とパスフレーズを登録します。(パスフレーズの入力を求められるので、(1)で入力したパスフレーズを入力します。)
# ssh-add ~/.ssh/butbucket.org
(12) 以下のコマンドを実行して、秘密鍵とパスフレーズが登録されていることを確認します。
# ssh-add -l
(13) git clone コマンド等を使って、Bitbucketに作成したリポジトリにアクセスできるかを確認します。
4. その他
- ssh-agentの起動とssh-addを実行しないと、「Permission denied (publickey). fatal: The remote end hung up unexpectedly」というエラーがBitbucketのリポジトリ接続時に発生する。