publikus kulcs felmásolása

Már egy párszor el kellett helyenem publikus kulcsokat, ez a csúnya script remélem több haszonnal jár majd, mint bosszúsággal. KEYFILE -ba nem tilos több kulcsot tenni. De a script ezen változata csak az együttes egymásutánni meglétet vizsgálja - hogy ne legyen fent 100-szor kulcs - nem bonyolítottam túl :).

ARG 1: host - gépnév vagy ip cím
ARG 2: user - user név - ezen jelentkezik be vélhetőleg utoljára jelszóval az adott gépröl

Megjegyzi egy listában is, hogy hova került fel a "zár", ha elopnánk a kulcsunkat itt kell zárat cserélni :). Gondolkoztam azon ,hogy ez tolvaljnak a dolgát mennyire könnyíti meg, hát nem sokban mivel a known_hosts -ból is ki tudja találni miket nyithat a privát kulcs.


#!/bin/sh
LOG="$HOME/.ssh/infected"
KEYFILE="$HOME/.ssh/id_rsa.pub"
if [ $# -lt 1 ];then  echo "usage: infect host [user] , if user is not  given then your user name will be used"; 
                exit 1;
        fi
if [ $# -eq 2 ]; then _user=$2; else _user=$USER;fi
echo "Trying to infect :) (send public key) to $1 as user $_user"

INFECTER='TMPFILE=`mktemp`;
cat > $TMPFILE;
if [ $? -ne 0 ]; then echo "Failed to create tmpfile" ;exit 2 ;fi;
if grep  "$(cat $TMPFILE)" $HOME/.ssh/authorized_keys; then echo Allredy added;rm $TMPFILE; exit 4; else echo -n "Adding: ";fi;
cat $TMPFILE >> $HOME/.ssh/authorized_keys;
if [ $? -ne 0 ]; then echo "[Failed]"; rm $TMPFILE;exit 3; else echo "[Ok]";rm $TMPFILE;exit 0; fi;
'

cat $KEYFILE |ssh -l $_user $1  $INFECTER
if [ $? -eq 0 ]; then echo $_user@$1 >>$LOG ; fi
if [ $? -ne 0 ]; then echo "Failed to add to logfile: $LOG";fi

Hozzászólások

Ez a sor: "cat > $TMPFILE;" problémás lehet, elvben a stdinről nem kéne kapj semmit.

Amúgy tipp: Gentoo alatt a /sbin/functions.sh ugyanolyan kinézetet tud adni, mint a init szkripteknél.


ebegin "Csinálom a dolgom"
sleep 5
touch /folder/file
eend $?

Ezt adja yó esetben:


 * Csinálom a dolgom ...                       [ ok ]

Rossz esetben:


 * Csinálom a dolgom ...                       [ !! ]

Az eend egyetlen hibája, hogy nem lép ki ha hiba van, így ezt neked kell intézned.