とーますメモ

Ruby on Rails / Goなどの学習メモ

【SSH】VPS上でGithubからPullするときの設定

CI/CDの設定とかは、とりあえず忘れて単純にGithubにSSH経由で接続して、リポジトリをPullするまでの設定
ちなみに以下の環境があり、ローカルでの秘密鍵(id_rsa)と公開鍵(id_rsa.pub)がある前提。

[開発マシン(Mac)] <=> [本番サーバ] <=> [Github]

いろんなサイトを見ると、本番サーバ上に秘密鍵を置くのは危険度Maxということなので
開発マシン上の秘密鍵を用いてGithubにアクセスできる方法の「ssh-agent」という機能を使うことにする。

1)Githubに公開鍵を登録する。

id_rsa.pubの中身をコピーして、以下のサイトで公開鍵を登録するだけ。
Sign in to GitHub · GitHub
「New SSH Key」ボタンを押し、Titleには何のSSH接続のための公開鍵なのか入力し、Keyには公開鍵の中身を貼り付けて登録

ちなみにMac上で公開鍵の中身をコピーするコマンドは以下。

$ pbcopy < ~/.ssh/id_rsa.pub

2)ssh-agentへ秘密鍵の設定

鍵をssh-agentに登録

$ ssh-add -K [鍵の場所]

※「-K」 をつけると電源を落としても消えない。利便性は上がるが、セキュリティ度は下がる。

現在登録されている鍵

$ ssh-add -l

ssh-agentに鍵を登録しておけば、ssh接続時に毎回パスフレーズを入力することも回避できる。

3)ssh-agentに登録した鍵を使ってログイン

通常だと以下のコマンドでOK

$ ssh -A [鍵の名前]

ただ毎回、「-A」を叩くのがめんどくさいので「~/.ssh/config」を以下のように設定する。

$ vi ~/.ssh/config
Host prod
    ...
    ForwardAgent yes

※prodは(任意のホスト名)

以上の設定を行えば、以下のコマンドだけでssh-agentを有効にし、サーバにログインできる。

$ ssh prod

サーバのコンソールから以下のコマンドを叩けば、Githubと疎通ができることが確認できる

$ ssh -T git@github.com