PDA自作日記

 

NetWalker

一覧を見る


   


サスペンド時のパスワード

(2011/12/08) サスペンド時に、sshのパスフレーズをクリアしたいことがあります。

サスペンドから復帰(レジューム)したときにパスワードを入力させるのは、システム → 設定 → GNOMEスクリーンセーバー → 「スクリーンセーバーを起動したら画面をロックする」でできます。しかし、sshのパスフレーズはクリアされません。

サスペンド時にパスフレーズをクリアには、以下の内容を /etc/pm/sleep.d/action_sshagent というファイルに保存し、実行権を与えます。筆者は、もともとあったaction_wpaをコピーして作りました。

#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin

# pm-action(8) - <action> <suspend method>
#
# On suspend|hibernate, clear ssh passphrase.

case "${1}" in
        suspend|hibernate) 
               ls /tmp/keyring-*/socket.ssh |xargs -I@ env SSH_AUTH_SOCK=@ ssh-add -D
                ;;
        resume|thaw)
                ;;
esac

サスペンド/レジュームはrootの権限でおこなわれ、ユーザーが使用しているsshの環境変数にはアクセスできません。そこで、/tmpに生成されるソケットを環境変数に設定してから、パスフレーズを削除するためのコマンドssh-addを呼び出しています。

この方法だとすべてのユーザーのパスフレーズが削除されますが、サスペンドはシステム全体に対してかかるので、問題にはならないと考えました。

これにより、サスペンド後にsshを使用すると、パスフレーズを入力する画面が表示されます。



 
  Copyright © π 2009-2012
Powered by light work group
このページの内容は無保証です