Files
q-tools/web/ssh-remove-known-host
2017-08-02 13:37:13 +03:00

37 lines
884 B
Bash
Executable File

#!/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"
}
}