記事の目次
VirtualBox+CentOS7(+Windows)でruby on railsの開発環境を作るのまとめ
- githubに鍵を登録し、連携させます。
- 基本は上記で作成した仮想環境ベースですが、その他環境でも同じかと思います(たぶん)
認証鍵を生成する
以下仮想環境ssh接続したコマンドで作業
-
.sshディレクトリへ移動
- ない場合は、自身のディレクトリ直下に作成する
mkdir ~/.ssh chmod 700 ~/.ssh
- ない場合は、自身のディレクトリ直下に作成する
-
鍵を生成する
- 生成する場所は.ssh以下であれば、更にディレクトリを作成しても良いかと思います。
ssh-keygen -t rsa -C "[メアド]" -f [鍵のファイル名]
- 生成する場所は.ssh以下であれば、更にディレクトリを作成しても良いかと思います。
パスフレーズ(鍵のパスワードみたいなもの)の入力を求められるので入力してEnter
-
確認にもう一度入力することを求められるので、再度入力してEnter
- 入力内容は画面に表示されません
- 入力内容は画面に表示されません
『[鍵のファイル名]』と『[鍵のファイル名.pub]』ができます。
-
[鍵のファイル名]のみのファイルは秘密鍵となりますので、外部への公開等しないよう十分注意して下さい。
- 仮想環境のイメージを出力して、それを配るとかすんなよって話
- 仮想環境のイメージを出力して、それを配るとかすんなよって話
-
秘密鍵の権限を変更する
chmod 600 [鍵のファイル名]
-
公開鍵(.pubファイル)の情報をコピーする
- 表示された『ssh-rsa...[メアド]』の部分までをコピーしておく。
cat [ファイル名].pub
- 表示された『ssh-rsa...[メアド]』の部分までをコピーしておく。
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.
- githubのSSH keysの登録した鍵の項目にも、緑のチェックがつくようになります
クローンする
-
クローンする際に指定の鍵を読み込ませる必要があるので、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
- これでログイン中は、パスフレーズの入力を求められなくなります。