我管理很多主机,每次我ssh
第一次进入新批次时,告诉yes
每个主机的安全 shell 客户端我接受主机密钥指纹以添加到~/.ssh/known_hosts
.如果我们认为我确信实际上没有泄露的主机密钥,那么有什么方法可以自动执行此操作吗?我不想禁用后续连接的密钥检查。
为了便于讨论,假设我在文本文件 .txt 中有所有主机的列表hostlist.txt
。
答案1
您可以使用以下选项,不必yes
为每个具有较新版本的主机输入ssh
:
ssh -o 'StrictHostKeyChecking accept-new' host
答案2
ssh-keyscan
将检查但不验证远程主机密钥指纹。遍历主机列表并附加到~/.ssh/known_hosts
:
while read host; do
if entry=$(ssh-keyscan $host 2> /dev/null); then
echo "$entry" >> ~/.ssh/known_hosts
fi
done < hostlist.txt