有没有办法在用户锁定系统时删除添加到 ssh-agent 的所有 ssh 密钥?

有没有办法在用户锁定系统时删除添加到 ssh-agent 的所有 ssh 密钥?

我已经添加了一串密钥ssh-agent,包括服务器、存储库等的密钥。

有没有办法在用户锁定系统时删除添加到 ssh-agent 的所有 ssh 密钥?

我现在的系统是 Ubuntu Desktop 16.04,带有 GNOME 3

答案1

你可以关注 DBUS 中的事件并在锁定呼叫时ssh-add -D从代理中删除所有密钥:

#!/bin/bash
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" |
  while read x; do
    case "$x" in 
      *"boolean true"*) echo SCREEN_LOCKED; ssh-add -D;;
      *"boolean false"*) echo SCREEN_UNLOCKED;;  
    esac
  done

但是您需要将SSH_AUTH_SOCK环境变量导出到此脚本,这样它才能够访问您的代理。

您可以将以上内容存储到脚本中clean_lock.sh,设置执行位(chmod u+x clean_lock.sh)并在后台运行该脚本./clean_lock.sh &

相关内容