删除known_hosts中的主机条目

当远端机器重装、密钥变化或者 IP 被复用时,SSH 很容易报主机指纹冲突。

脚本

#!/bin/bash
 
if [ $# -eq 0 ]; then
  echo "使用方法: $0 <主机名或IP>"
  exit 1
fi
 
HOST=$1
KNOWN_HOSTS_FILE="$HOME/.ssh/known_hosts"
 
if [ ! -f "$KNOWN_HOSTS_FILE" ]; then
  echo "错误: $KNOWN_HOSTS_FILE 文件不存在"
  exit 1
fi
 
ssh-keygen -R "$HOST"
 
echo "已从 $KNOWN_HOSTS_FILE 中删除 $HOST 的条目"
echo "现在您可以重新连接到 $HOST 而不会收到警告"

示例

./remove_known_host.sh 192.168.1.10
./remove_known_host.sh github.com