jubilee

Programing, Books and more...

Octopressブログ環境の再構築:第4回

Macも新しくなったので、SSH鍵の設定をあらためて実施。
GitHub, Biubucketに対して行う。
別々の鍵ファイルを用意した方がいいのかもしれないが、今回は一つのファイルでやってみる。

  1. Homebrewのインストール
  2. rbenvのインストール
  3. Ruby1.9.3のインストール
  4. SSH鍵の設定(GitHub, Bitbucket) <– いまここ
  5. Octopressブログ環境の構築(From Bitbucket)

方針

  • 一つの鍵ファイルをGitHubとBitbucketに使用する
  • ファイル名(-f)をつける(誤って上書きしないように)
    id_rsa.jd-repository
  • コメント(-C)は、ユーザ名@マシン名
    JohnDoe@jd-mbp15
  • パスフレーズなし

鍵の作成

1
2
3
4
5
6
7
8
9
$ cd ~/.ssh
No such file or directory
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t rsa -C "JohnDoe@jd-mbp15"
Enter file in witch to save the key: id_rsa.jd-repository <-ここでファイル名をつける
...
+--[ RSA 2048]----+
...

ssh-keygenコマンドのオプションの内容は以下。
-t:鍵の種類
-b:ビット数(デフォルト2048なので指定不要)
-C:コメント

ファイル生成確認

生成されたかを確認する。
id_rsa.repository:秘密鍵
id_rsa.repository.pub:公開鍵

1
2
3
$ ls -la
-rw-------   1 JohnDoe  staff  1675  2 16 17:03 id_rsa.jd-repository
-rw-r--r--   1 JohnDoe  staff   396  2 16 17:03 id_rsa.jd-repository.pub

ファイルのパーミッションを変更

1
$ chmod 600 id_rsa.jd-repository

必要であれば行うが、既に600になっている。

公開鍵の内容をコピー

GitHub, Bitbucketに登録する公開鍵の内容をクリップボードにコピーする。

1
$ pbcopy < ~/.ssh/id_rsa.jd-repository.pub

GitHubに登録

GitHubにログイン –> AccountSettings –> SSH Keys

  • Title:わかりやすいように。jd-mbp15
  • Key:pbcopyでコピーした内容をペースト(Cmd+v)
  • Add Key:最後にここを押下

Bitbucketに登録

Bitbucketにログイン –> アカウントの管理 –> SSH キー

  • 鍵を追加:押下(モーダルウィンドウが表示される)
  • Label:わかりやすいように。jd-mbp15
  • Key:pbcopyでコピーした内容をペースト(Cmd+v)
  • 鍵を追加:最後にここを押下

コンフィグファイル(local)にSSHホスト情報を登録

Macにある ~/.ssh/config にHOST情報を追加する。
ここに登録しておくと、Terminalからのsshコマンドを簡略化できる。

1
2
3
$ ssh -l git -i ~/.ssh/id_rsa.jd-repository github.com
$ ssh github.com

登録する内容は以下。

1
2
3
4
5
6
7
8
9
10
11
12
13
Host github.com
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa.jd-repository
  IdentitiesOnly yes

Host bitbucket.org
  HostName bitbucket.org
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa.jd-repository
  IdentitiesOnly yes

設定の意味については以下

  • Host:ホスト名
  • HostName:ホストのアドレス or IP
  • User:ログインユーザー
  • Port:使用ポート(デフォルト:22)
  • IdentityFile:利用する秘密鍵のファイル名
  • IdentitiesOnly:ファイルに格納された秘密鍵のみを使用

GitHubのリポジトリにアクセスする際は

GitHubのリポジトリにアクセスする際は注意が必要。

1
2
$ git@[HostName]:[Account name]/[Repository name].git
// ここの[HostName]にはConfigに設定したHostNameを指定する