我已经添加了一串密钥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 &
。