Git:Git BashにてSSH鍵のパスフレーズ入力を初回のみにする

Git for WindowsのGit Bash上で、SSH接続でリモートリポジトリ操作を行う際、毎回SSH鍵のパスフレーズ入力しなければならず、面倒だなぁと思っていました。

そこで、

こんなことをつぶやいたら、

と、お叱りを受けたので調べました。

 

ssh-agent、ssh-addを用いて一度だけパスフレーズを入力する

調べてみると、教えていただいた通りssh-agent、ssh-addコマンドを使うことで、対応できそうです。

 

まず、ssh-agentを実行すると、次のような値が戻されます。

 

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-dACAlw5972/agent.5972; export SSH_AUTH_SOCK;
SSH_AGENT_PID=6496; export SSH_AGENT_PID;
echo Agent pid 6496;

 

この結果をevalコマンドに渡して、環境変数に登録します。

 

$ eval `ssh-agent`
Agent pid 6700

$ echo $SSH_AUTH_SOCK
/tmp/ssh-pTngQt1572/agent.1572

$ echo $SSH_AGENT_PID
6700

 

最後に、ssh-addコマンドを実行して、パスフレーズを入力すれば、このGit Bashのセッションの間は、パスフレーズ入力を省略できるようになります。

 

$ ssh-add
Enter passphrase for /c/Users/takano-s/.ssh/id_rsa:
Identity added: /c/Users/takano-s/.ssh/id_rsa (/c/Users/takano-s/.ssh/id_rsa)

 

Git Bash起動時にssh-agent登録、ssh-add実行を行う

どうせなら、Git Bash起動時に上記コマンドを実行してしまえば、あとが楽になります。そんな時は、みんな大好き.bashrcですよね。

~/.bashrc(%UserProfile%\.bashrc)の最後に、次のように上記コマンドを追加してしまいます。

 

#ssh-agent
eval `ssh-agent`
ssh-add

 

すると、Git Bashを起動したタイミングでパスフレーズ入力を求められるようになります。

 

Git Bash実行時

 

これで楽々ですね!

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中