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

使用SSH身份文件直接执行Testinfra远程测试失败,求排查方案

Testinfra直接使用SSH身份文件连接失败的解决方法

你遇到的问题是因为直接使用--ssh-identity-file时,缺少了配置文件中那些关键的SSH安全验证选项,导致连接被拒绝。以下是具体的排查和解决步骤:

1. 检查SSH密钥文件权限

SSH要求私钥文件权限必须为600(仅所有者可读可写),否则会拒绝使用。执行以下命令修正权限:

chmod 600 /path/to/key

2. 补充必要的SSH参数

你的配置文件中包含了StrictHostKeyChecking no、IdentitiesOnly yes等关键选项,直接命令中需要通过--ssh-options参数传递这些配置:

py.test --ssh-identity-file=/path/to/key \
  --ssh-options="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes" \
  --hosts='ssh://root@192.168.1.15'

各参数作用说明:

  • -o StrictHostKeyChecking=no:跳过远程主机密钥验证,和配置文件行为一致
  • -o UserKnownHostsFile=/dev/null:不保存远程主机密钥到本地,避免后续连接干扰
  • -o IdentitiesOnly=yes:强制仅使用指定的身份文件,防止SSH自动尝试其他本地密钥(如~/.ssh/id_rsa)

如果远程SSH端口不是默认的22,需要在hosts参数中指定端口:

--hosts='ssh://root@192.168.1.15:22'

3. 先手动验证SSH连接

在执行Testinfra命令前,先用纯SSH命令测试连接是否正常,排除基础连接问题:

ssh -i /path/to/key -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes root@192.168.1.15

如果这个命令能成功登录远程主机,那么Testinfra的命令也应该能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:20:08