ssh-agentを利用すると、SSHでログインするときにパスフレーズの入力を省略することができます。ここでは、ssh-agentの使い方について紹介します。
目次
ssh-agentを起動
ssh-agentを起動しておく必要があります。
下記コマンドで起動します。
$ eval `ssh-agent`
自動起動
https://h2plus.biz/hiromitsu/entry/791 でssh-agentを自動起動する方法が紹介されています。
~/.bashrc
に次の内容を記述しておくと、ログイン時にssh-agentが自動起動されます。
if [ -f ~/.ssh-agent ]; then
. ~/.ssh-agent
fi
if [ -z "$SSH_AGENT_PID" ] || ! kill -0 $SSH_AGENT_PID; then
ssh-agent > ~/.ssh-agent
. ~/.ssh-agent
fi
ssh-add -l >& /dev/null || ssh-add
初回ログイン時にパスフレーズが聞かれます。
秘密鍵を登録
ssh-addコマンドで秘密鍵を登録します。
$ ssh-add 秘密鍵のパス
秘密鍵のパスを省略した場合、 ~/.ssh/id_rsa
~/.ssh/id_dsa
~/.ssh/identify
が登録されます。
秘密鍵登録時にパスフレーズが聞かれるので入力してください。
これでSSH接続時にパスフレーズの入力を省略できます。
ansibleなどを利用していると、sudo実行時にパスフレーズ入力待ちになり、処理が止まってしまいます。
そういったときにもssh-agentを活用できますね。
登録された鍵の確認
$ ssh-add -l
登録された鍵をすべて削除
$ ssh-add -D