SourcetreeからSSH接続でBitbucketを操作する

Bitbucketの既存リポジトリをローカルにクローン&Sourcetreeで直感的に作業出来るように開発環境を整える。
エンジニアとして就職した初日、訳も分からず先輩エンジニアの方に横について貰いながら脳死で作業してましたが、ようやくやってる事が分かったので纏めます。

手順はこんな感じです。

  1. 公開鍵認証の設定
  2. Bitbucketからリモートリポジトリをclone
  3. Sourcetreeでcloneしたリポジトリの設定をする

アカウント登録など細かい所は割愛してます。

公開鍵認証の設定

SSH接続出来るように、公開鍵認証の設定を行っていきます。

公開鍵認証の設定

ローカルで、

cd ~/.ssh
mkdir bitbucket
cd bitbucket
ssh-keygen -t rsa # 認証鍵を作成 パスフレーズの設定を求めらるが、入力せずにEnter
cat id_rsa.pub | pbcopy # pbcopyでコピーしてくれる

bitbucketにアクセスして、「右上アイコン」->「Personal Setting」->「SSH 鍵」の順に進みます。
「鍵を追加」をクリックして、pbcopyでコピーした公開鍵をKeyの部分に貼り付けます。
labelは何でもいいです。自分は検証環境の公開鍵もあるので、「development environment」にしました。

SSH接続出来るか確認

ターミナルでSSH接続が正常に出来るか確認しておきましょう。

sshの基本構文は、

# ssh user_name@host_name

今回の場合だと、

ssh -i ~/.ssh/bitbucket/id_rsa git@bitbucket.org

i オプションで秘密鍵ファイルを指定します。
デフォルトだと、「~/.ssh/id_rsa」を使っちゃうので指定する必要があります。

これを毎回入力するのは面倒なので、.ssh/configに以下を追記する事で手間を省きます。
.ssh/configは、SSHでリモートサーバーの接続する際に利用される設定ファイルです。

vi .ssh/config
# 以下を追記
Host bitbucket
  HostName bitbucket.org
  IdentityFile ~/.ssh/bitbucket/id_rsa
  User git

コマンドで指定していた項目を上記のように設定ファイルに記載する事で、

ssh bitbucket

# 出力はこんな感じ
authenticated via ssh key.
You can use git to connect to Bitbucket. Shell access is disabled

上記のように、Host ○○○ で付けた名前でssh接続出来るようになります。

ssh/configについての参考記事:~/.ssh/configについて

bitbucketからリモートリポジトリをclone

Bitbucketでcloneしたいディレクトリに進みます。右上に「クローンの作成」というのがあると思うのでクリック。「SSH」が選択されているのを確認。多分こんな感じのが出てくる。

git clone git@bitbucket.org:ディレクトリの場所

git@bitbucket.orgはSSH接続に関する記述。ssh/configで楽してるので、

git clone bitbucket:ディレクトリの場所

という記述に書き換えるとgit clone出来ます。

Sourcetreeでcloneしたリポジトリの設定をする

とりあえず、Sourcetreeで先ほどcloneしてきたリポジトリを開きます。
その後、「右上の歯車アイコン」->「リモート」の順に進んで、リモートリポジトリのパスを入力します。

リモートの名前:origin
URL/パス: bitbucket:ディレクトリの場所 # git clone した時と同じ
ホスティングサービス:Bitbucket
ホスト URL:https://bitbucket.org
ユーザー名:git

以上です。