sshでパスフレーズを省略する方法(ssh-agentの使い方)

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
よかったらシェアしてね!
目次