Você pode assistir aos eventos no DBUS e no bloqueio chame ssh-add -D
para remover todas as chaves do agente:
#!/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
Mas você precisa exportar a variável de ambiente SSH_AUTH_SOCK
para esse script, para poder acessar seu agente.
Você pode armazenar os itens acima no script clean_lock.sh
, definir os bits de execução ( chmod u+x clean_lock.sh
) e executar o script no plano de fundo ./clean_lock.sh &
.