Linux

如何在電源管理活動中刷新我的 ssh 密鑰?

  • July 9, 2014

按照慣例使用ssh-agent和私鑰。一切正常。

ssh-add我的問題是關於從睡眠、掛起、休眠等活動中刷新鍵的最佳實踐。我想過圍繞這些命令編寫一個簡單的包裝器,但後來想知道它們是否被呼叫?還是核心直接啟動此活動?PM 實用程序是嚴格的使用者空間嗎?

除了鎖定我的螢幕等之外,我還想要這個額外的安全層,並且想知道是否有其他人已經優雅地解決了這個問題或者有最佳實踐可以推薦。謝謝。

您也許可以讓使用者守護程序通過 D-Bus 監聽狀態變化。看起來 gnome-power-manager 沒有為此公開任何信號,但您可能能夠從 hal 或 DeviceKit-power/upower 獲得一些東西。

我有一個小pm腳本,它為掛起/休眠、恢復/解凍的每個登錄使用者執行使用者定義的腳本。我用它來殺死或重新啟動在掛起時表現不佳的程序。使用者可以創建腳本,~/.user-pm其中在暫停時按字典順序執行,在恢復時按相反順序執行。 $1具有 pm 操作名稱。

ssh-add -D您可以簡單地添加一個在掛起/休眠時呼叫“”的使用者腳本。(您必須查找SSH_AUTH_SOCK某個地方,但我認為您需要任何解決方案)。

這是全域pm鉤子:

> cat /etc/pm/sleep.d/10_run_user_parts
#!/bin/sh

USER_PM_DIR=".user-pm"

# foreach logged in user
for user in `users | grep -o "\S*" | sort -u`; do
   user_home=`getent passwd "${user}" | awk -F: '{print $6}'`

   # check user has a valid home-directory
   [ -d $user_home ] || continue

   user_pm_dir="$user_home/$USER_PM_DIR"
   # check for user-pm directory
   [ -d "$user_pm_dir" ] || continue

   # call run-parts as $user
   case "$1" in
       hibernate|suspend)
       su -c "run-parts --arg=\"$1\" \"${user_pm_dir}\"" "${user}"
       ;;
       thaw|resume)
       su -c "run-parts --reverse --arg=\"$1\" \"${user_pm_dir}\"" "${user}"
       ;;
       *) exit $NA ;;
   esac
done

我在 ubuntu - 這也適用於 debian - 否則,YMMV

引用自:https://serverfault.com/questions/199895