summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Landau <alex.landau@xorcom.com>2008-12-07 11:51:58 +0000
committerAlex Landau <alex.landau@xorcom.com>2008-12-07 11:51:58 +0000
commit4b6f3a17dc619141628161b927efd9689f15fc22 (patch)
tree15b4e6bb0adc73f214a228c382eed375daab557e
parent34259abce237a7a24f590c0cb4fdd93fea4cbf41 (diff)
rapid-tunneling:
- Changed client to use OpenSSH instead of Dropbear. git-svn-id: svn+ssh://xorcom/home/svn/debs/components/rapid-tunneling@6419 283159da-0705-0410-b60c-f2062b4bb6ad
-rwxr-xr-xrapid-tunneling39
1 files changed, 21 insertions, 18 deletions
diff --git a/rapid-tunneling b/rapid-tunneling
index 02ae4e7..97bf167 100755
--- a/rapid-tunneling
+++ b/rapid-tunneling
@@ -5,23 +5,26 @@ if [ -z "$1" ]; then
exit 1
fi
-rm -rf /tmp/ra
-mkdir -m 700 /tmp/ra
-mkdir /tmp/ra/recv /tmp/ra/send
-gunzip -cf $1 | tar xf - -C /tmp/ra/recv
-dropbearconvert openssh dropbear /tmp/ra/recv/key /tmp/ra/recv/key.db
-chmod 600 /tmp/ra/recv/key.db
-user=`cat /tmp/ra/recv/user`
-host=`cat /tmp/ra/recv/host`
-port=`cat /tmp/ra/recv/port`
-tunnelport=`cat /tmp/ra/recv/tunnelport`
+tmpdir=`mktemp -d`
+mkdir $tmpdir/recv $tmpdir/send
+tar xzf "$1" -C $tmpdir/recv
+user=`cat $tmpdir/recv/user`
+host=`cat $tmpdir/recv/host`
+port=`cat $tmpdir/recv/port`
+tunnelport=`cat $tmpdir/recv/tunnelport`
-dropbearkey -t rsa -f /tmp/ra/send/key.db | grep '^ssh-rsa ' > /tmp/ra/send/key.pub
-dropbearconvert dropbear openssh /tmp/ra/send/key.db /tmp/ra/send/key
-cp /tmp/ra/recv/key /tmp/ra/send/origkey
-tar czf /tmp/ra/send/ra-params.tar.gz -C /tmp/ra/send key origkey
+ssh-keygen -q -t rsa -C rapid-tunneling -N "" -f $tmpdir/send/key # public will be in key.pub
+cp $tmpdir/recv/key $tmpdir/send/origkey
+cp $tmpdir/recv/key $HOME/key
+tar czf $HOME/ra-params.tar.gz -C $tmpdir/send key origkey
-mkdir -m 700 /tmp/ra/.ssh
-cat /tmp/ra/send/key.pub >> /tmp/ra/.ssh/authorized_keys
-chmod 644 /tmp/ra/.ssh/authorized_keys
-start-stop-daemon -S -b -x /bin/sh -- -c "ssh -y -K 10 -T -p $port -i /tmp/ra/recv/key.db -R $tunnelport:127.0.0.1:22 -l $user $host < /tmp/ra/send/ra-params.tar.gz"
+mkdir -p -m 700 $HOME/.ssh
+awk '$NF != "rapid-tunneling" {print}' $HOME/.ssh/authorized_keys > $HOME/.ssh/authorized_keys.new 2>/dev/null
+cat $tmpdir/send/key.pub >> $HOME/.ssh/authorized_keys.new
+mv -f $HOME/.ssh/authorized_keys.new $HOME/.ssh/authorized_keys
+chmod 644 $HOME/.ssh/authorized_keys
+rm -rf $tmpdir
+# Remove host key of $host (in case it has changed)
+ssh-keygen -R $host
+# Run in background
+setsid ssh -o 'StrictHostKeyChecking no' -o 'BatchMode yes' -o 'ServerAliveInterval 60' -T -p $port -i $HOME/key -R $tunnelport:127.0.0.1:22 -l $user $host < $HOME/ra-params.tar.gz