0

我已经围绕这个问题搜索了一段时间,但没有找到任何有帮助的东西。

我们正在使用 ansible 来自动化我们的瞻博网络设备,因此使用 ansible 瞻博网络模块。例如,当我尝试使用“junos_facts”时,我可以在 host1 上毫无问题地执行它,但在 host2 上,当我在 cli 中添加 -k 时,我得到 PasswordRequiredException 或 AuthenticationException

TASK [proact-junos-test : Gather JunOS facts] ***************************************************************************************************************************************************
fatal: [host2]: FAILED! => {"changed": false, "msg": "PasswordRequiredException('Private key file is encrypted')"}
ok: [host1]

我在 cli、ansible.cfg 和剧本本身中尝试了所有可能的参数组合。出于某种原因,它可以在一台主机上运行,​​但不能在另一台主机上运行。我在两台主机上都部署了相同的密钥,并将其存储在我的 ssh-agent 中。我可以毫无问题地通过 ssh 连接到两台主机。

谁能帮我这个?谢谢

4

1 回答 1

0

据我了解,问题在于 ssh 密钥是加密的。尝试将 ssh 密钥添加到 ssh 代理(如果有)。

如果你没有,有一个简单的技巧:

eval $(ssh-agent)
ssh-add path/to/private/ssh/key
ansible ...

如果你在 CI/CD 环境中运行它,你需要与 ssh-add 争论询问密码的方式,但那是另一回事。

于 2022-02-15T09:33:32.123 回答