Bitbucket に ssh key を登録、 git でアクセスする

まずアカウントを作る。
Bitbucket のチュートリアルで tutorial リポジトリをローカルにクローンしてみた。このときはまだ ssh の設定をしていないので https での接続となり、パスワードの入力が必要だった。

% git clone https://USERNAME@bitbucket.org/USERNAME/tutorial.git 

次に ssh key を登録する。 pbcopy でクリップボードにコピーして Bitbucket の所定のフォームに貼り付ける。

% cd ~/.ssh
% cat id_rsa.pub | pbcopy

~/.ssh/config を編集する。
必要最小限だけ書くとしたらこんな感じだろうか。

Host bitbucket.org
  HostName bitbucket.org
  IdentityFile ~/.ssh/id_rsa
  User git

ssh の接続テストには -T をつければよいとどこかに書いてあった。リファレンスを読むと -T は「端末を割り当てない」となっている。それが接続してみるだけ、ということなのかな。

% ssh -T git@bitbucket.org

ssh で初回接続のときに聞かれるお約束の質問に yes と答えておく。

The authenticity of host 'bitbucket.org (131.103.20.168)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

tutorial を clone したローカルのディレクトリで新規ファイルを作って commit してみる。

% touch newfile.rst
% git add .
% git commit -m "first local commmit"
% git push -u origin master

最後の git push でエラーになった。
最初 https で clone してきていたので、.git/config を編集する必要がある。

[remote "origin"]
	url = https://USERNAME@bitbucket.org/USERNAME/tutorial.git
	fetch = +refs/heads/*:refs/remotes/origin/*

この部分を以下のように変更する。
bitbucket.org の後が / から : に変わることに注意が必要。

[remote "origin"]
	url = git@bitbucket.org:USERNAME/tutorial.git
	fetch = +refs/heads/*:refs/remotes/origin/*

気を取り直して再度 git push する。

% git push -u origin master

ちなみに -u をつけることで次回以降は push 先を指定しなくてもよくなるらしい。

% git push

あと git コマンドのマニュアルを読むにはハイフンでつなげばよいとのこと。

% man git-push

ふー