Ce petit script de rien du tout permet de vider l'agent de ses clef quand on verrouille la session via xscreensaver. Quand on déverrouille la session, il recharge les clefs et redemande la (les) phrase(s) de passe.
A lancer dans le .xsession ou via le Desktop Manager, comme ssh-agent.
#!/usr/bin/perl
# unload identity when screen is locked
# put your favourite graphical ssh-askpass here, unless you use SSH_ASKPASS
# environment variable
my $ssh_askpass = "/usr/lib/openssh/gnome-ssh-askpass";
$ENV{SSH_ASKPASS} = "$ssh_askpass" unless ($ENV{SSH_ASKPASS});
my $locked;
open (IN, "xscreensaver-command -watch |");
while () {
if (m/^LOCK/) {
system("ssh-add -d") if (! $locked);
$locked = 1;
} elsif (m/^UNBLANK/) {
system("ssh-add < /dev/null") if ($locked);
$locked = 0;
}
}
# script pour décharger les clefs en fonction d'xscreensaver
Posté par nodens . En réponse au message [Terminal] Ne plus taper ses mots de passe avec ssh. Évalué à 1.
#!/usr/bin/perl # unload identity when screen is locked # put your favourite graphical ssh-askpass here, unless you use SSH_ASKPASS # environment variable my $ssh_askpass = "/usr/lib/openssh/gnome-ssh-askpass"; $ENV{SSH_ASKPASS} = "$ssh_askpass" unless ($ENV{SSH_ASKPASS}); my $locked; open (IN, "xscreensaver-command -watch |"); while () { if (m/^LOCK/) { system("ssh-add -d") if (! $locked); $locked = 1; } elsif (m/^UNBLANK/) { system("ssh-add < /dev/null") if ($locked); $locked = 0; } }