一定時間後にSSHキーをロックおよびロック解除する

一定時間後にSSHキーをロックおよびロック解除する

SSH で生成されたキーを取得しようとしています。このキーをパスワードでロック解除すると、パスワードなしで一日中サーバーにログインできるようになります。

しかし、一日が終わると、キーは再びロックされ、ロックを解除するには再度パスワードを入力する必要があります。

基本的には次のような構造です。

1.: Key locked, enter password to unlock
2.: Password correct: Key unlocked for ... hours
3.: Time out, enter password to renew

答え1

ssh-agent (または PuTTY の場合は Pageant) を使用します。キーをメモリにロードすると、OS が実行中である限りキーはロック解除されたままになりますが、システムをシャットダウンするとすべてのキーが消去されます。

(これではないWindows に付属の SSH クライアントを使用すると、ログイン パスワードで保護されたキーがレジストリに永続的に保存されます。


コンピュータをシャットダウンしない場合(サスペンドのみなど)、ssh-agent ではタイムアウト付きのキーを追加することもできます。

$ ssh-add -t 6h ~/.ssh/id_rsa

最近の OpenSSH バージョンをお持ちの場合は、~/.ssh/config オプションを有効にすることで、最初の接続時にキーを自動的に追加することができます。

Host *
    AddKeysToAgent 10h

これは、Windows に付属する SSH クライアントでは機能しない可能性があることに注意してください。同様に、PuTTY の Pageant もタイムアウトをサポートしていません。

関連情報