Skip to content

Instantly share code, notes, and snippets.

@blzzua
Last active November 3, 2017 16:20
Show Gist options
  • Save blzzua/fca6d913cb809b60c724a4dedcd699d7 to your computer and use it in GitHub Desktop.
Save blzzua/fca6d913cb809b60c724a4dedcd699d7 to your computer and use it in GitHub Desktop.
IP=$1
# проверить является ли IP - адресом/хостом с портом. [127.0.0.1]:21212
ISPORT=$(expr match "$IP" '\[.*]\:[0-9]\{1,5\}')
if [[ ISPORT -gt 0 ]];
then
echo "$IP не является ip-адресом. поиск и замена таких адресов пока не реализован"
exit 0
fi
ssh-keygen -F ${IP} | while read ip keytype key junk
do
if [[ ! "$IP" == "$ip" ]] ; then
# пропускаем случаи, когда полученное знаениие не является чистым айпишников. закомментированный, или хостнейм, или с портом.
continue
fi
# get fingerprint from host. get fingerprint from variable
# echo "$ip $keytype $key" > /dev/shm/kt
# ssh-keygen -l -E sha256 -f /dev/shm/kt
K_FROM_HOST=$( ssh-keyscan -t rsa $IP | awk '{if ($2 == "ssh-rsa" ) {print $3}}' )
K_FROM_FILE="$key"
#'
# сравнить. если они разные - удалить. ssk-keygen -R $IP
if [[ ! "$K_FROM_HOST" == $K_FROM_FILE ]] ;
then
echo replace fingerprint for ip $IP
ssh-keygen -R $IP
ssh -o StrictHostKeyChecking=no -o PubkeyAuthentication=yes -o PasswordAuthentication=no $IP echo ok
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment