SSH認証キーをBitbucket/GitHubに設定しよう! [Mac簡単手順]


BitbucketやGitHubのGitリポジトリにアクセスではSSH認証キーを使うことができます。このSSH認証キーを使ったアクセスのメリットは次のとおりです。

* Pushするときにいちいちパスワードを打つ必要がなくなる
* セキュリティが向上する

今回はMacでSSH認証のための公開鍵と秘密鍵を生成して、GitHubやBitbucketに公開鍵を登録して、SSHでアクセスできるようにするまでの設定手順をできるだけわかりやすく書いていきます。もし、詰まった点とかあればコメントお願いします!

(04/11 22:30) 前回の修正でミスってた部分を修正


🐯 流れ

SSH認証キーの設定の流れは次のとおりです。

(1) SSH認証の公開鍵と秘密鍵を作成
(2) Mac側(クライアント側)へのSSHキーの設定
(3) Bitbucketへの公開鍵の登録
(4) GitHubへの公開鍵の登録

🍣 (1) SSH認証の公開鍵と秘密鍵を作成

コンソールでssh keyを作成していきます。ここではのちのちつまずのをふぐためにパスフレーズを省略したSSH鍵を作成していきます。

こちらが作成の注意点。

* `test@example.com`の部分に自分のメアドを登録 
* 途中でパスフレーズ(passphrase)をきかれるが、Enterを押すだけ

コンソールでSSH Keyを作成するコマンドはこちら。

cd ~/.ssh
ssh-keygen -t rsa -P "" -b 4096 -m PEM -f id_rsa.example.com -C test@example.com

鍵の生成が完了したら2つのファイルができます。

id_rsa: 秘密鍵、他人には見られないようにする
id_rsa.pub: 公開鍵、Bitbucket/GitHubに渡す

秘密鍵のid_rsaのセキュリティを強化するために次のコマンドを実行します。

chmod 600 id_rsa

鍵作成は以上です。

🎃 (2) Mac側(クライアント側)へのSSHキーの設定

鍵の管理を簡単にするために、~/.ssh/configに設定を追加します。

vim ~/.ssh/config

~/.ssh/configのファイルの末尾に次の内容を追加してください。

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

Host github
HostName github.com
IdentityFile ~/.ssh/id_rsa
User git

🍮 (3) Bitbucketへの公開鍵の登録

ブラウザでBitbucketにアクセスしてユーザー登録/ログインしてください。

トップページの右上の人のアイコン => Manage Accountをクリック。

bitbucket_header_menu_2012-11-24

左側のメニューの「SSH keys」=>「Add key」を選択。

bitbucket_add_ssh_key_20121124

ssh keyファイルをクリップボードにコピーするために、コンソールで次のコマンドを実行。

pbcopy < ~/.ssh/id_rsa.pub

Label名を管理しやすい名前で登録。bitbuketのkeyのフォームにクリップボードから貼り付け => add keyをクリック。

bitbucket_modal_add_ssh_key-20121124

これで、ssh keyをBitbucketに登録できました。

😸 (4) GitHubへの公開鍵の登録

ブラウザでGitHubにアクセスしてユーザー登録/ログインしてください。

トップページの右上の道具のアイコン(Account settings)をクリック。

github_header_menu_admin_2012-11-24

左側のメニューの「SSH keys」=>「Add key」を選択。

github_select_add_SSH_Keys_20121124

フォームのTitleにssh keyの名前をセットして、コンソールで次のコマンドを実行。

pbcopy < ~/.ssh/id_rsa.pub

このコマンドでコンソールからクリップボードにsshキーの中身がコピーされます。
そして、keyのところにクリップボードから貼り付け => add keyをクリック。

github_set_SSH_Keys_20121124

これで、ssh keyをGitHubに登録できました。

😼 補足: GitHubで複数アカウントにssh接続するための手順

GitHubで複数アカウントを持っていて、CUIで使い分けるための手順がクラスメソッドさんのブログの中にありました。よければぜひご検討ください!

🏈 補足: SSH鍵/フォルダのパーミッション

毎回忘れるのでメモ。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

🐮 このテーマに関連するオススメ本

Git ポケットリファレンスはGitやGitHubでの開発をする際に机の上においておくとほんとうに役に立ちます。特に本の中のチートシートが便利です!

* Git作業フロー&コマンド チートシート
* GitHub作業フロー&コマンド・設定 チートシート

このチートシートだけでもこの本を買う価値は十二分にあります!

🎂 参考リンク

テツさんにコメントをいただいて、記述ミスを修正できました。ほんとうに有にくいです! 

SSHで公開鍵認証を使う

🎉 変更来歴

12/12/06 17:45メモ:パスフレーズ入力の省略を追加

12/12/12 21:00メモ: SSH鍵/フォルダのパーミッションを追加

13/05/06 17:30フォルダ名の記述ミスを修正

13/08/19 17:00記述ミスが散見されたため、書き直し
14/01/25 13:30わかりにくかった部分をヒアリングして書き直し
14/04/11 22:30前回の修正でミスってた部分を修正

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍