はじめに
Windows + Git で SSH 通信の環境を対象としています。
パスフレーズの省略方法は複数ありますが、一番かんたん & セキュリティ的によさそうな方法
と個人的に思うものを記載します。
環境
~/.bashrc
~/.bashrc
に以下を記入します。~/.bashrc
がない人は新規作成してください。
ssh-add の行には、.pub ではない鍵(秘密鍵)を指定してください。
※~/
は%HOME%
を指しています。今回の場合はC:/Users/<ユーザー名>
フォルダに.bashrc
を新規作成してください。
#ssh-agent
eval $(ssh-agent -s)
ssh-add ~/.ssh/キー名
~/.bashrc
は、Git Bash 起動時のみ実行されるので起動中の場合は再起動してください。
または、bash コマンドを叩くでも OK。
~/.bash_logout
ターミナルを閉じたときに、~/.bashrc
で起動した ssh-agent を終了させるため
~/.bash_logout
に以下を記入します。~/.bash_logout
がない人は同じく新規作成してください。
ssh-agent -k
Git Bash 起動時
Git Bash 起動時にパスフレーズを聞かれるようになります。
Git Hub (Git Lab) のパスワードを入力してください。入力後は、Git Bash を新たに立ち上げるまでパスフレーズを聞かれることはありません。
Agent pid 553
Enter passphrase for /c/Users/username/.ssh/id_rsa:
~/.bashrc
を新規作成した人は、以下の警告が出ることがありますが
WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.
This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.
~/.bash_profile、 ~/.bash_login または ~/.profile が見つからないので、~/.bashrc を読み込む ~/.bash_profile を作りました!
といった内容のため、気にしなくても問題はありません。
パスフレーズ入力後、以下のように出力されれば OK。
Agent pid 553
Enter passphrase for /c/Users/username/.ssh/id_rsa:
Itentity added: /c/Users/username/.ssh/id_rsa
さいごに
パスフレーズ省略の記事はいくつかありますが、
_netrc
・.gitconfig
等の複数ファイルを編集する、パスフレーズをファイルに平文で記入するなど
むずかしそう & ファイルにパスフレーズを直接記入するのはセキュリティ的に不安だと思い
この方法に落ち着きました。