You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从远程主机列表自动添加指纹至known_hosts无需手动确认

批量自动添加SSH主机指纹到known_hosts的方案

好问题!批量自动添加SSH主机指纹到known_hosts确实能省掉反复手动输入yes的麻烦,我给你几个实用的方案,按需选择就好:

方案1:单主机快速自动添加(临时场景)

如果你只是要给某一台新主机自动添加指纹,可以直接用SSH的内置参数——这是OpenSSH 7.6版本之后支持的安全选项:

ssh -o StrictHostKeyChecking=accept-new your_user@target_host

这个参数的好处是只接受首次连接的新指纹,如果主机指纹后续发生变化(比如被中间人劫持),它会直接拒绝连接而不是盲目接受,比旧版的StrictHostKeyChecking=yes或者-o UserKnownHostsFile=/dev/null安全得多。

方案2:批量处理主机列表文件

如果你有一个包含所有目标主机的列表文件(比如hosts.txt,每行格式是user@host或者直接是主机IP/域名),可以写个简单的Shell脚本循环处理:

#!/bin/bash
# 读取hosts.txt里的每一行主机地址
while read -r host; do
    # 连接主机后立即退出,ConnectTimeout避免超时卡住
    ssh -o StrictHostKeyChecking=accept-new -o ConnectTimeout=5 "$host" exit
done < hosts.txt

把上面的代码保存成add_fingerprints.sh,给它加执行权限chmod +x add_fingerprints.sh,然后运行就行。脚本会自动遍历所有主机,完成指纹添加。

方案3:全局自动配置(仅适合完全可信环境)

如果你经常需要连接大量新主机,且所在环境是完全可信的(比如内部局域网),可以修改SSH的配置文件来全局启用自动添加:

  1. 编辑用户级配置文件~/.ssh/config(如果没有就创建一个),添加:
Host *
    StrictHostKeyChecking accept-new
  1. 或者修改系统级配置/etc/ssh/ssh_config(需要sudo权限),同样添加上面的内容。

⚠️ 注意:这个方案有安全风险,如果主机指纹被篡改(比如中间人攻击),SSH不会发出警告,所以只建议在完全可控的内部网络使用。

更安全的批量导入方式(推荐生产环境)

如果能预先获取到所有目标主机的合法指纹(比如从运维团队拿到标准的known_hosts格式文件),直接追加到本地的known_hosts是最安全的方式:

cat pre_verified_known_hosts >> ~/.ssh/known_hosts

这种方式完全避免了自动接受未知指纹的风险,适合生产环境使用。

内容的提问来源于stack exchange,提问作者mostworld77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:50:12