如何自动将条目添加到 .ssh/known_hosts?

如何自动将条目添加到 .ssh/known_hosts?

我管理很多主机,每次我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

相关内容