#!/bin/bash # trustme [remote user] [remote ip] # example: # trustme xxx 192.168.1.3 local_user=`whoami` local_ip=`ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'|sed -n 1p` remote_user=$1@$2 key_path=/home/$1/ # check my public key if [ ! -e ~/.ssh/id_rsa.pub ]; then echo "-creating public key for $local_user..." ssh-keygen -t rsa fi echo "" echo "-copy public key to remote host" scp ~/.ssh/id_rsa.pub $remote_user:$key_path echo "" echo "-make remote host trust me" ssh $remote_user <<END cd /home/$1/ if [ ! -e .ssh ]; then mkdir .ssh; fi cd .ssh touch authorized_keys # check if already trusted tee -a authorized_keys < /home/$1/id_rsa.pub chmod 744 authorized_keys ls -l |grep authorized_keys rm /home/$1/id_rsa.pub END scp $0 $remote_user:$key_path ssh $remote_user "chmod 777 $key_path/$0" echo "" echo "this script has been copied to remote user" echo "run [ $key_path/$0 $local_user $local_ip ] on remote host to trust back"
reference:https://blogs.oracle.com/jkini/entry/how_to_scp_scp_and