46
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ssh-agent と expect で ssh のパスフレーズ入力を自動化

Posted at

ssh-agent を使えばパスフレーズの入力を自動化できることを教えてもらったのでメモ。
~/.bash_profile に以下のコードを書くと、ログイン時に ssh-agent が起動され、
さらに expect で自動的にキーとパスフレーズが登録される。

eval `ssh-agent`

# 秘密鍵ファイル
KEY_FILENAME='id_rsa'
# パスフレーズ
PASSPHRASE='XXXXXXXXXX'

expect -c "
set timeout -1
spawn ssh-add $HOME/.ssh/$KEY_FILENAME
expect {
    \"Enter passphrase for\" {
        send \"$PASSPHRASE\r\"
    }
}
expect {
    \"denied\" { exit 1 }
    eof { exit 0 }
}
"

ただ、これで起動した ssh-agent はログアウトしてもプロセスが残ったままになるようなので、
~/.bash_logout に以下のコードを書いてログアウト時にプロセスを kill するようにする。

ssh-agent -k
46
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?