#記事の目次
VirtualBox+CentOS7(+Windows)でruby on railsの開発環境を作るのまとめ
- githubに鍵を登録し、連携させます。
- 基本は上記で作成した仮想環境ベースですが、その他環境でも同じかと思います(たぶん)
#認証鍵を生成する
以下仮想環境ssh接続したコマンドで作業
- .sshディレクトリへ移動
- ない場合は、自身のディレクトリ直下に作成する
mkdir ~/.ssh
chmod 700 ~/.ssh
- 鍵を生成する
- 生成する場所は.ssh以下であれば、更にディレクトリを作成しても良いかと思います。
ssh-keygen -t rsa -C "[メアド]" -f [鍵のファイル名]
- パスフレーズ(鍵のパスワードみたいなもの)の入力を求められるので入力してEnter
- 確認にもう一度入力することを求められるので、再度入力してEnter
- 入力内容は画面に表示されません
- 『[鍵のファイル名]』と『[鍵のファイル名.pub]』ができます。 - [鍵のファイル名]のみのファイルは秘密鍵となりますので、外部への公開等しないよう十分注意して下さい。 - 仮想環境のイメージを出力して、それを配るとかすんなよって話
- 秘密鍵の権限を変更する
chmod 600 [鍵のファイル名]
- 公開鍵(.pubファイル)の情報をコピーする - 表示された『ssh-rsa...[メアド]』の部分までをコピーしておく。
cat [ファイル名].pub
#githubに鍵を登録する
ここからホスト側のブラウザにて作業
- githubにログインし、右上の自アイコンクリック⇒settingを選択
- Personal settingsのメニューから、SSH keysを選択
- 表示された画面の右上にある、『New SSH key』を選択
- 表示されたフォームに、以下の情報を入力
title:任意な文字列
Key:上記.pubファイルのコピーした内容をペースト
-
『Add SSH key』を選択
-
githubのパスワードを求められるので、入力する
-
戻ってきた画面に、指定したtitleで鍵が登録されていることが確認できればOK
#githubにssh接続する
再度仮想環境に戻ります
- 設定ファイルを作成する
- なければ新規に作成する
vi ~/.ssh/config
#-----------ここから-----------
Host github-testconnect
User git
Port 22
HostName github.com
IdentityFile ~/.ssh/[秘密鍵ファイル名]
TCPKeepAlive yes
IdentitiesOnly yes
#-----------ここまで-----------
- configファイルの権限を変更する
chmod 600 ~/.ssh/config
- githubへのssh接続テスト
ssh -T github-testconnect
- 入力後、以下が表示されたら、『yes』を入力してEnter
Are you sure you want to continue connecting (yes/no)?
- 問題なく接続されたら鍵のパスフレーズ入力を求められるので、先に設定したパスフレーズを入力してEnter
- その後以下が表示されたら接続OK
- githubのSSH keysの登録した鍵の項目にも、緑のチェックがつくようになります
Hi [githubアカウント名]! You've successfully authenticated, but GitHub does not provide shell access.
クローンする
- クローンする際に指定の鍵を読み込ませる必要があるので、configでgithubを登録します。
#-----------ここから-----------
Host github.com
IdentityFile ~/.ssh/[秘密鍵ファイル名]
#-----------ここまで-----------
- クローンするディレクトリに移動して、クローンする
git clone git@github.com:xxxx/xxxx.git
- パスフレーズの入力を求められるので、入力してEnter
- 問題がなければ、該当のリポジトリからクローンができます
#ssh-agentを使ってパスフレーズをスルーする
- pullする時等、常にパスフレーズの入力を求められるのはめんどくさい。
- ということで、ssh-agentを使って認証をスルーできるようにする
- PIDを環境変数に登録する
eval \`ssh-agent\`
echo $SSH_AUTH_SOCK
- ログイン時にssh-agentを起動させる
echo 'eval \`ssh-agent\`' >> ~/.bash_profile
echo 'ssh-add ~/.ssh/[秘密鍵ファイル名]' >> ~/.bash_profile
- ログアウト時にssh-agentをkillするようにする。
echo 'ssh-agent -k' >> ~/.bash_logout
- この後仮想環境にログインする時、パスフレーズの入力を求められるので入力してEnter
- これでログイン中は、パスフレーズの入力を求められなくなります。