Ansible-Playbook: Failed to connect to the host via ssh: no



我试图在一些服务器上运行剧本,我试图设置Ansible剧本。为此,我为开发清单创建了一个hosts文件:

all:
servers:
hosts:
my_server1:
my_server2:
vars:
ansible_ssh_user: myremoteuser
ansible_ssh_private_key_file: "{{ private_key }}"

我从保险库中填充private_key,如下所示:private_key: "{{vault_private_key | b64decode}}"

vault_private_key是我生成的base64编码的私有2048 rsa密钥,我可以看到它在错误消息中正确解码,如下所示:

"msg": "Failed to connect to the host via ssh: no such identity: -----BEGIN OPENSSH PRIVATE KEY-----n

我用下面的命令生成ssh密钥:ssh-keygen -b 2048 -t rsa -f myremoteuser_key -C myremoteuser

当我ssh到my_server12时,我可以验证/home/myremoteuser/.ssh/authorized_keys在那里生成了公钥,我通过搜索公钥文本来验证。

我可以通过命令行ssh。在尝试设置私钥时,是否缺少某些内容?

我不能从你的问题中看出——你能确认你没有混淆私钥文件路径和私钥文件内容吗?

是否将私钥写入磁盘?如果是,您是否将权限设置为0600?SSH不会读取权限太大的私钥文件。

我怀疑你遇到了权限问题。

为什么不使用template任务来填充私钥的内容呢?见https://docs.ansible.com/ansible/latest/collections/ansible/builtin/template_module.html

你可以在你的模板文件中放入一个变量,{{vault_private_key | b64decode}}

相关内容

  • 没有找到相关文章

最新更新