Dask-SSH集群Python配置私钥启动报错HostKeyNotVerifiable如何解决
问题解决方案
核心错误原因
- 你使用的
client_host_keys是错误的参数名,asyncssh指定私钥的参数应为private_key - 调度器端口配置无需加冒号前缀
- 主机密钥校验失败一般是因为本地known_hosts文件未收录所有目标节点的主机公钥
修正后的代码
from dask.distributed import Client, SSHCluster cluster = SSHCluster( # 节点列表,第一个节点默认作为调度器 hosts=["10.67.22.208", "10.67.22.102", "10.67.22.178", "10.67.22.117", "10.67.22.85"], # SSH连接配置,完全对齐CLI参数 connect_options={ "username": "ubuntu", "private_key": "~/.ssh/my_key.pem", "known_hosts": "~/.ssh/known_hosts" }, # 调度器配置 scheduler_options={ "port": 8786, "dashboard_address": ":8787" } ) client = Client(cluster)
可选适配方案
如果是内部可信测试环境,想要跳过主机密钥校验(生产环境不推荐),可以修改connect_options里的known_hosts值为None:
connect_options={ "username": "ubuntu", "private_key": "~/.ssh/my_key.pem", "known_hosts": None }
提前手动SSH登录所有目标节点,将节点公钥缓存到本地~/.ssh/known_hosts文件,是更安全的解决方案。
内容的提问来源于stack exchange,提问作者Andrea Nicolai
相关产品推荐
相关产品推荐

