#!/bin/bash function helpexit() { echo "Remove hosts from ~/.ssh/known_hosts" echo "-f no questions." exit } for (( i=1; i<=$#; i++ )); do [[ "${!i}" = "--help" ]] && helpexit [[ "${!i}" = "-h" ]] && helpexit [[ "${!i}" = "-f" ]] && { FORCE=1; continue; } HOST="${!i}" done [[ -z "$HOST" ]] && helpexit REALHOST=$( ssh -G "$HOST" 2> /dev/null | awk '/^hostname / { print $2 }' ) [[ -z "$REALHOST" ]] && REALHOST="$HOST" IP=$( getent hosts "$REALHOST" | awk '{ print $1 }' ) [[ "$FORCE" -ne 1 ]] && { echo "Sure to remove ${REALHOST} (IP: ${IP}) from known_hosts? [y/N]" read resp } || { resp=y } [[ "$resp" = "y" ]] && { echo ssh-keygen -R "$REALHOST" ssh-keygen -R "$REALHOST" [[ -n "$IP" ]] && { echo ssh-keygen -R "$IP" ssh-keygen -R "$IP" } }