summaryrefslogtreecommitdiffstats
path: root/deploy/trustme.sh
diff options
context:
space:
mode:
authorYao Lu <lu.yao135@zte.com.cn>2016-11-29 22:39:37 +0800
committerzhouya <zhou.ya@zte.com.cn>2016-12-20 15:27:28 +0800
commit0b57e3be28f1b42d7cea436feb04fbcdf83e8484 (patch)
tree900413e47a5994aa36b00d2b7db0e14ca4e1815c /deploy/trustme.sh
parenta5e3706c114f43224056fa222276491445ddcf55 (diff)
implement deploy on virthal pod
Change-Id: I600e21f0d36f37c75cac4ace5f7225e32ab93d56 Signed-off-by: Yao Lu <lu.yao135@zte.com.cn>
Diffstat (limited to 'deploy/trustme.sh')
-rwxr-xr-xdeploy/trustme.sh88
1 files changed, 88 insertions, 0 deletions
diff --git a/deploy/trustme.sh b/deploy/trustme.sh
new file mode 100755
index 00000000..eedda5ce
--- /dev/null
+++ b/deploy/trustme.sh
@@ -0,0 +1,88 @@
+#!/bin/sh
+#to be trusted by other host£¬and no password needed when use ssh command
+
+#check parameters legality
+logfile=/var/log/trustme.log
+function print_log
+{
+ local promt="$1"
+ echo -e "$promt"
+ echo -e "`date -d today +"%Y-%m-%d %H:%M:%S"` $promt" >> $logfile
+}
+ip=$1
+passwd=$2
+if [ -z $passwd ]; then
+ print_log "Usage: `basename $0` ipaddr passwd"
+ exit 1
+fi
+
+rpm -qi sshpass >/dev/null
+if [ $? != 0 ]; then
+ print_log "Please install sshpass first"
+ exit 1
+fi
+
+#ping other host
+unreachable=`ping $ip -c 1 -W 3 | grep -c "100% packet loss"`
+if [ $unreachable -eq 1 ]; then
+ print_log "host $ip is unreachable"
+ exit 1
+fi
+
+#generate ssh pubkey
+if [ ! -e ~/.ssh/id_dsa.pub ]; then
+ print_log "generating ssh public key ..."
+ ssh-keygen -t dsa -f /root/.ssh/id_dsa -N "" <<EOF
+n
+EOF
+ if [ $? != 0 ]; then
+ print_log "ssh-keygen failed"
+ exit 1
+ fi
+fi
+
+#clear old public key
+user=`whoami`
+host=`hostname`
+keyend="$user@$host"
+print_log "my keyend = $keyend"
+cmd="sed '/$keyend$/d' -i ~/.ssh/authorized_keys"
+print_log "clear my old pub key on $local_host ..."
+ssh-keygen -f "/root/.ssh/known_hosts" -R $ip
+if [ $? != 0 ]; then
+ print_log "delete pub key of $ip from known_hosts failed"
+ exit 1
+fi
+sshpass -p $passwd ssh -o StrictHostKeyChecking=no $ip "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys"
+if [ $? != 0 ]; then
+ print_log "ssh $ip to create file authorized_keys failed"
+ exit 1
+fi
+sshpass -p $passwd ssh -o StrictHostKeyChecking=no $ip "$cmd"
+if [ $? != 0 ]; then
+ print_log "ssh $ip to edit authorized_keys failed"
+ exit 1
+fi
+#copy new public key
+print_log "copy my public key to $ip ..."
+tmpfile=/tmp/`hostname`.key.pub
+sshpass -p $passwd scp -o StrictHostKeyChecking=no ~/.ssh/id_dsa.pub $ip:$tmpfile
+if [ $? != 0 ]; then
+ print_log "scp file to $ip failed"
+ exit 1
+fi
+#copy public key to authorized_keys
+print_log "on $ip, append my public key to ~/.ssh/authorized_keys ..."
+sshpass -p $passwd ssh -o StrictHostKeyChecking=no $ip "cat $tmpfile >> ~/.ssh/authorized_keys"
+if [ $? != 0 ]; then
+ print_log "ssh $ip to add public key for authorized_keys failed"
+ exit 1
+fi
+print_log "rm tmp file $ip:$tmpfile"
+sshpass -p $passwd ssh -o StrictHostKeyChecking=no $ip "rm $tmpfile"
+if [ $? != 0 ]; then
+ print_log "ssh $ip to delete tmp file failed"
+ exit 1
+fi
+print_log "trustme ok!"
+