Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1289 dpurdie 1
#!/bin/sh
2
 
3
# Shell script to install your public key on a remote machine
4
# Takes the remote machine name as an argument.
5
# Obviously, the remote machine must accept password authentication,
6
# or one of the other keys in your ssh-agent, for this to work.
7
 
8
ID_FILE="${HOME}/.ssh/id_rsa.pub"
9
 
10
if [ "-i" = "$1" ]; then
11
  shift
12
  # check if we have 2 parameters left, if so the first is the new ID file
13
  if [ -n "$2" ]; then
14
    if expr "$1" : ".*\.pub" > /dev/null ; then
15
      ID_FILE="$1"
16
    else
17
      ID_FILE="$1.pub"
18
    fi
19
    shift         # and this should leave $1 as the target name
20
  fi
21
else
22
  if [ x$SSH_AUTH_SOCK != x ] && ssh-add -L >/dev/null 2>&1; then
23
    GET_ID="$GET_ID ssh-add -L"
24
  fi
25
fi
26
 
27
if [ -z "`eval $GET_ID`" ] && [ -r "${ID_FILE}" ] ; then
28
  GET_ID="cat \"${ID_FILE}\""
29
fi
30
 
31
if [ -z "`eval $GET_ID`" ]; then
32
  echo "$0: ERROR: No identities found" >&2
33
  exit 1
34
fi
35
 
36
if [ "$#" -lt 1 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
37
  echo "Usage: $0 [-i [identity_file]] [user@]machine" >&2
38
  exit 1
39
fi
40
 
41
# strip any trailing colon
42
host=`echo $1 | sed 's/:$//'`
43
 
44
{ eval "$GET_ID" ; } | ssh $host "umask 077; test -d ~/.ssh || mkdir ~/.ssh ; cat >> ~/.ssh/authorized_keys" || exit 1
45
 
46
cat <<EOF
47
Now try logging into the machine, with "ssh '$host'", and check in:
48
 
49
  ~/.ssh/authorized_keys
50
 
51
to make sure we haven't added extra keys that you weren't expecting.
52
 
53
EOF
54
 
55