source: npl/sshkeyfix @ 05ee562

gcc484perl-5.22
Last change on this file since 05ee562 was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100755
File size: 996 bytes
Line 
1#!/bin/bash
2# Ssh keyfix version 2.0
3
4if [ -z $1 ]; then
5 echo "Usage: $0 user@host"
6 echo "Installs your public ssh key to host, if neccesary"
7 exit 1
8fi
9
10if [ ! -f ~/.ssh/id_rsa ]; then
11 ssh-keygen -N "" -b 2048 -t rsa -f ~/.ssh/id_rsa || exit 1
12fi
13
14PUB="`cat ~/.ssh/id_rsa.pub`" || exit 1
15
16echo -n "Checking ssh key on $1..."
17
18
19checkkey()
20{
21    ssh $OPTS $1 "
22        mkdir ~/.ssh &>/dev/null
23        if ! grep '$PUB' ~/.ssh/authorized_keys &>/dev/null; then
24                echo -n 'Installing public key...'
25                echo '$PUB' >> ~/.ssh/authorized_keys
26        fi"
27}
28
29checkkey $1
30EXIT=$?
31
32#remove hostkey and retry
33if [ $EXIT == 255 ]; then
34    TARGETHOST=`echo $1 | sed s/.*@//`
35    echo -n "SSHKEYFIX: Removing hostkey of $TARGETHOST..."
36    cat ~/.ssh/known_hosts | grep -v "^$TARGETHOST " > ~/.ssh/known_hosts.$$ || exit 1
37    mv ~/.ssh/known_hosts.$$ ~/.ssh/known_hosts || exit 1
38    echo "OK"
39    checkkey $1
40    EXIT=$?
41fi
42
43if [ $EXIT == 0 ]; then
44    echo "OK"
45    exit 0
46else
47    echo "ERROR!"
48    exit 1
49fi
Note: See TracBrowser for help on using the repository browser.