本番環境にgithub経由でデプロイするための、読み取り専用のデプロイキーを登録する方法のメモです。
秘密鍵・公開鍵の作成
サーバー上で秘密鍵、公開鍵を作成します。
まず、デプロイユーザーのホームディレクトリ下の .ssh/
の中を見て、id_rsa
, id_rsa.pub
が存在しないことを確認します(ディレクトリ自体なければ確認不要です)。
ls ~/.ssh
次に、以下を実行して、鍵を生成します(メールアドレスの部分は変更してください)。鍵の保存ディレクトリ、パスフレーズを聞かれますが、そのままEnter連打で問題ないです。
$ ssh-keygen -t rsa -b 4096 -C "hogehoge@tdomy.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tdomy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tdomy/.ssh/id_rsa.
Your public key has been saved in /home/tdomy/.ssh/id_rsa.pub.
秘密鍵 id_rsa
, 公開鍵 id_rsa.pub
が作成されたこと確認します。
$ ls ~/.ssh
id_rsa id_rsa.pub
Githubへの登録には公開鍵の中身が必要なので、出力してコピーしておきます。
$ cat ~/.ssh/id_rsa.pub
Githubへの公開鍵の登録
作成した、公開鍵をGithubにデプロイ用の鍵として登録します。
デプロイ対象のリポジトリの [ Settings ] タブから [ Deploy Keys ]を選択し、Deploy Keys画面を開き、上部の [ Add Deploy Key ] を押します。

すると、デプロイキーの登録画面が開きますので、Title欄に適当な識別名、Key欄に作成した公開鍵の中身を張り付けます。なお [Allow write access] にチェックをしないことで、読み取り専用の鍵となります。
入力が終わったら、 [Add Key] ボタンを押して登録します。

問題なければ、以下のように鍵が追加されます。

動作確認
サーバー上で以下を実行します。
$ ssh -T git@github.com
以下のように出力されれば疎通OKです(Warningは気にしなくても良いです)。
The authenticity of host 'github.com (52.69.186.44)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,52.69.186.44' (RSA) to the list of known hosts.
Hi tdomy/deployer! You've successfully authenticated, but GitHub does not provide shell access.
あとはcloneしたディレクトリ内で
$ git fetch
$ git reset --hard origin/master
とすれば、リモートの master ブランチと同一の内容になります。