GithubのDeploy Keysを登録してパスワードなしでアクセスする

github-icon GitHub
aws AWS
aws-ec2 EC2

EC2 に構築したサーバーからGithubにアクセスしてgit clone してビルド&デプロイがしたい。

自動化する仕組みは色々あるけれど、今回は単純に自作のシェルを叩くだけ。

そのとき発生するのがパスワード問題。シェルに組み込んでおいたり、どこかのファイルに保存したりすればできるのだが、パスワードを平で保存するのはよろしくない。

Github に公開鍵を登録して SSH でアクセスすることができるので試してみる。

鍵をつくる

EC2 に構築したサーバーにログインして、以下を実行する。

cd ~

ssh-keygen -t rsa

パスフレーズを聞かれるので適当にいれる。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hoge/.ssh/id_rsa.
Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.

すると ~/.ssh 以下に2ファイルできる。

ls ~/.ssh

id_rsa
id_rsa.pub

id_rsa.pubの中身をコピーしておく。

GithubにDeploy Keyを登録する

各レポジトリの SettingsDeploy Keys メニューがある。

Screen Shot 2016-07-03 at 10.37.58.png

Add deploy key を押す。

Screen Shot 2016-07-03 at 10.39.42.png

  • Title・・・識別できるような名前(EC2とか)
  • Key ・・・先ほど作成した id_rsa.pub ファイルの中身
  • Allow write access・・・書き込みが必要かどうか。今回は不要。

Keyの中身は

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA.....

のようになっているはず。これをそのまま貼り付ける。

Screen Shot 2016-07-03 at 10.45.27.png

こんな感じで登録される。

EC2からcloneしてみる

アクセスするためのURLがいつもと異なり、git@ではじまる。

git clone git@github.com:yourname/yourrepo.git

これでパスワードなしでアクセスすることができた。

まとめ

  • やりたいことはできた
  • 普段からローカルPCでやるとセキュリティ上よろしくないかな
  • Github便利