LoginSignup
30
31

More than 5 years have passed since last update.

sshのパスフレーズ入力を、keychainで省略する

Posted at

sshログインの方式に公開鍵認証(パスフレーズあり)を使用していますが、パスフレーズを毎回入力するのが面倒です。このパスフレーズ入力を省略するため、keychainを使います。

keychainとは

Windowsアプリならpagent、OS Xなら標準のキーチェーンでパスフレーズ入力を省略できますが、CygwinやLinuxシェルでは使えません。.ssh/configにパスフレーズを書くという方法もありますが、これはちょっと…(それを言ったらOS Xのキーチェーンもどうなのという話ですが)。

そこで、ssh-agentというツールで秘密鍵とパスフレーズをキャッシュすることで、パスフレーズ入力を省略することができます。しかし、このssh-agentは少々使い勝手が悪く、色々と小細工する必要があります。そこで、keychainというssh-agentフロントエンドを使用することで、ssh-agentの面倒な事を引き受けてくれます。

つまり、keychainを使用すると、秘密鍵とパスフレーズを良い感じにキャッシュしてくれて、パスフレーズ入力を省略することができます。

使い方、設定方法

以下のように使用します。

keychain -q ~/.ssh/id_rsa ~/.ssh/id_rsa_2
source ~/.keychain/$HOSTNAME-sh

keychainには、複数の秘密鍵を指定することができます。例えば、サービスごとに異なる鍵を運用している場合などに役立ちます。

keychainをそのまま呼び出すと色々カラフルなログを出力するので、-qで黙らせます。

keychainを呼び出すと、~/.keychain/に色々とファイルを出力します。これらはssh-agentが必要とする環境変数で、お約束としてsourceで反映します。

起動時にkeychainを呼ぶ

ログイン時やCygwin起動時にkeychainを呼び出して鍵をキャッシュさせたい場合、.bash_profileなどに書いておくと良いです。

参考

30
31
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
30
31