sakuraのレンタルサーバーにGitリポジトリを作成したのは良いものの、sshで接続するとプル/プッシュの時に毎回パスワードを要求されて困っていた。
Puttygenで秘密鍵・公開鍵を作成しTortoiseGitに登録して~という記事はいくつも見るけど設定していも上手く行かない。(パスワードを要求される)
その場合の対応方法を記載する。
◆大まかな手順
①sakuraのサーバで秘密鍵・公開鍵を作成する
②秘密鍵をクライアントにダウンロードする
③クライアント側にてsshのConfigを記述する
①sakuraのサーバで秘密鍵・公開鍵を作成する
- まずPuttyなどでsakuraに接続
- 次に~/.sshに移動
cd ~/.ssh
※.sshフォルダが無い場合は作成してから移動(mkdir ~/.ssh
)
-
ssh-keygen
にて秘密鍵・公開鍵を作成する
ssh-keygen -t rsa -f id_rsa_sakura
-t rsa
は暗号方式をRSAにする指定
-f id_rsa_sakura
は、秘密鍵・公開鍵のファイル名を「id_rsa_sakura」にする指定
-
上記を実行すると~/.sshフォルダに以下の2ファイルが作成される
id_rsa_sakura ・・・ 秘密鍵
id_rsa_sakura.pub ・・・ 公開鍵 -
公開鍵(id_rsa_sakura.pub)を~/.ssh/authorized_keysに登録する
[~/.ssh/authorized_keysが存在しない場合]
cat ./id_rsa_sakura.pub > ./authorized_keys
[~/.ssh/authorized_keysが存在する場合]
cat ./id_rsa_sakura.pub >> ./authorized_keys
- authorized_keysのパーミッションを変更する
chmod 600 ./authorized_keys
②秘密鍵をクライアントにダウンロードする
- 秘密鍵(
~/.ssh/id_rsa_sakura
)をクライアントにダウンロードしフォルダに保存する
- Windowsの場合
c:\Users\<ユーザ>\.ssh
に保存する- Macの場合
~/.ssh
に保存する
③クライアント側にてsshのConfigを記述する
- .sshのフォルダ(Windowsは
c:\Users\<ユーザ>\.ssh
Macは~/.ssh
)に
config
というテキストファイルを作成する(拡張子なし) - configファイルに以下の内容を記載する
Host xxxxxx.sakura.ne.jp
HostName xxxxxx.sakura.ne.jp
User xxxxxx
IdentityFile c:\Users\<ユーザ>\.ssh\id_rsa_sakura
Host xxxxxx.sakura.ne.jp
HostName xxxxxx.sakura.ne.jp
User xxxxxx
IdentityFile ~/.ssh/id_rsa_sakura
xxxxxx ・・・ sakuraのユーザID
※Hostのところは「xxxxxx.sakura.ne.jp」でなくても良いが、まずは接続することを優先するためにHostNameと同じ値にしている
上手く接続できた後に、変えてみるのも良いと思う。
設定は以上で完了 ssh公開鍵認証で接続できるか確認する
- ssh公開鍵認証で接続できるか確認する
ssh xxxxxx@xxxxxx.sakura.ne.jp
パスワードの要求なしに接続できれば成功!
- TortoiseGitへの設定は不要
TortoiseGitに対してPutty鍵
の設定不要(空欄で良い)