假设需要时A机器ssh访问B机器时无需重复输入密码,则在A机器上执行本脚本,参数为B机器ip。执行过程中需要输入两次B机器的root密码。
#!/bin/bash
#set -x
remote_ip=${1:-""}
SSH_PATH=/root/.ssh
KEY_PUB=${SSH_PATH}/id_rsa.pub
TMP_KEY_PUB=${KEY_PUB}.tmp
TRUST_KEY=${SSH_PATH}/authorized_keys
if [ ! -f ${KEY_PUB} ]
then
echo "make id_rsa.pub ..."
ssh-keygen -t rsa
if [ ! -f ${KEY_PUB} ]
then
echo "no ${KEY_PUB}."
exit 1
fi
fi
echo "make trust ..."
scp ${KEY_PUB} root@${remote_ip}:${TMP_KEY_PUB} >/dev/null 2>&1
ssh root@${remote_ip} "if ! grep \"$(cat ${KEY_PUB})\" ${TRUST_KEY} >/dev/null 2>&1; then cat ${TMP_KEY_PUB} >> ${TRUST_KEY}; fi; rm -f ${TMP_KEY_PUB}"
echo "make trust done"