#!/usr/bin/perl # invoke with something like this from .bash_profile # # if [ "$SSH_AGENT_PID" == "" ]; then # . ~/.ssh/agentdata # else # ~/bin/addkeys # fi exit unless ($ENV{'SSH_AGENT_PID'}); $debug = 1; $sshdir = $ENV{'HOME'}. "/.ssh"; $agentdata = "$sshdir/agentdata"; push @keys, "$sshdir/id_dsa"; open (LIST, "ssh-add -l |"); exit unless ( =~ /no identities/); close (LIST); while ($key = pop @keys) { system ("ssh-add $key"); } open (AGENTDATA, "> $agentdata"); print AGENTDATA "export SSH_AGENT_PID=$ENV{'SSH_AGENT_PID'}\n"; print AGENTDATA "export SSH_AUTH_SOCK=$ENV{'SSH_AUTH_SOCK'}\n"; close (AGENTDATA);