|
|
@@ -32,6 +32,7 @@ prog_date="31-May-2002"
|
|
|
# OpenSSH programs
|
|
|
ssh_agent="@l_prefix@/bin/ssh-agent"
|
|
|
ssh_add="@l_prefix@/bin/ssh-add"
|
|
|
+ssh="@l_prefix@/bin/ssh"
|
|
|
|
|
|
# parse command line options
|
|
|
opt_q=no; alias_quiet=q
|
|
|
@@ -42,6 +43,7 @@ opt_k=no; alias_kill=k
|
|
|
opt_a=no; alias_add=a
|
|
|
opt_d=no; alias_delete=d
|
|
|
opt_l=no; alias_list=l
|
|
|
+opt_i=no; alias_install=i
|
|
|
opt_h=no; alias_help=h
|
|
|
opt_v=no; alias_version=v
|
|
|
if [ $# -eq 0 ]; then
|
|
|
@@ -58,7 +60,7 @@ while [ $# -gt 0 ]; do
|
|
|
eval "name=\$alias_${name}"
|
|
|
eval "opt_${name}=yes"
|
|
|
;;
|
|
|
- -[qceskadlhv] )
|
|
|
+ -[qceskadlihv] )
|
|
|
name=`echo x$1 | sed -e 's;^x-;;'`
|
|
|
eval "opt_${name}=yes"
|
|
|
;;
|
|
|
@@ -75,7 +77,7 @@ done
|
|
|
|
|
|
# stand-alone operation: display help information
|
|
|
if [ ".$opt_h" = .yes ]; then
|
|
|
- echo "Usage: $prog_name [-h] [-v] [-q] [-c] [-e] [-s] [-k] [-a] [-d] [-l] [keyfile ...]"
|
|
|
+ echo "Usage: $prog_name [-h] [-v] [-q] [-c] [-e] [-s] [-k] [-a] [-d] [-l] [-i] [keyfile ...]"
|
|
|
exit 0
|
|
|
fi
|
|
|
|
|
|
@@ -108,7 +110,7 @@ check_agent_info () {
|
|
|
if [ ! -r $SSH_AUTH_SOCK ]; then
|
|
|
invalid1="agent socket $SSH_AUTH_SOCK no longer exists"
|
|
|
else
|
|
|
- ssh-add -l >/dev/null 2>&1
|
|
|
+ $ssh_add -l >/dev/null 2>&1
|
|
|
if [ $? -eq 2 ]; then
|
|
|
invalid1="agent socket $SSH_AUTH_SOCK no longer valid"
|
|
|
fi
|
|
|
@@ -288,3 +290,16 @@ if [ ".$opt_l" = .yes ]; then
|
|
|
fi
|
|
|
fi
|
|
|
|
|
|
+# install key(s) into remote account
|
|
|
+if [ ".$opt_i" = .yes ]; then
|
|
|
+ if [ ".$SSH_AUTH_SOCK" = . ]; then
|
|
|
+ echo "$prog_name:WARNING: agent not available" 1>&2
|
|
|
+ else
|
|
|
+ for remote in "$@"; do
|
|
|
+ echo "$prog_name: installing public keys into $remote"
|
|
|
+ $ssh_add -L |\
|
|
|
+ $ssh $remote "umask 077; test -d ~/.ssh || mkdir ~/.ssh; cat >>~/.ssh/authorized_keys"
|
|
|
+ done
|
|
|
+ fi
|
|
|
+fi
|
|
|
+
|