Ssh Ansible:拒绝许可
我无法使用公钥身份验证运行playbook。我得到这个错误: 正在尝试私钥:/root/.ssh/id\u dsa\r\n错误3:没有此类标识: /root/.ssh/id\u dsa:没有这样的文件或目录\r\n错误1:正在尝试私有 key:/root/.ssh/id\u ecdsa\r\n错误3:没有这样的标识: /root/.ssh/id\u ecdsa:没有这样的文件或目录\r\n错误1:正在尝试 私钥:/root/.ssh/id\u ed25519\r\ndebug3:没有这样的标识: /root/.ssh/id\u ed25519:没有这样的文件或目录\r\n错误2:我们没有 发送数据包,禁用方法\r\n错误1:不再进行身份验证 要尝试的方法。\r\n权限被拒绝(公钥、密码) 到目前为止,我一直在使用Ssh Ansible:拒绝许可,ssh,ansible,ansible-playbook,Ssh,Ansible,Ansible Playbook,我无法使用公钥身份验证运行playbook。我得到这个错误: 正在尝试私钥:/root/.ssh/id\u dsa\r\n错误3:没有此类标识: /root/.ssh/id\u dsa:没有这样的文件或目录\r\n错误1:正在尝试私有 key:/root/.ssh/id\u ecdsa\r\n错误3:没有这样的标识: /root/.ssh/id\u ecdsa:没有这样的文件或目录\r\n错误1:正在尝试 私钥:/root/.ssh/id\u ed25519\r\ndebug3:没有这样的标识:
--ask pass
身份验证,但现在我需要将其自动化,所以我需要通过公钥来实现。我必须如何配置它
我找到了这个剧本:
---
- hosts: all
remote_user: root
vars:
authorized_key_list:
- name: root
authorized_keys:
- key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
state: present
我用--ask pass
执行这个剧本,下一个剧本执行不需要密码,工作正常。但几分钟后它就不会了!为什么?上面的剧本实际上在做什么
提前谢谢。假设您有两台机器。机器A{Ansible Host}和机器B{target} 在机器A上,您必须使用以下方法生成sshkey:
~$ ssh-keygen
这将在当前用户的.ssh目录中生成公钥和私钥对
生成密钥后,您需要从机器A的.ssh目录复制公钥{extension.pub}
现在登录到机器B,进入它的.ssh文件夹。现在,您需要创建一个名为“authorized_keys
”的文件(如果不存在,请确保权限为只读),并将复制的公钥从机器a粘贴到机器B
这已经完成了
现在在计算机A上的主机{inventory}文件中使用以下格式:
[hosts]
Machine_B_ip ansible_ssh_user=username_here ansible_ssh_private_key_file=/path_of_private_key
例:
您还可以执行ansible ping,以检查ansible是否能够通过ssh作为
ansible all-m ping-vi inventory_文件进行通信。机器A{Ansible Host}和机器B{target}
在机器A上,您必须使用以下方法生成sshkey:
~$ ssh-keygen
这将在当前用户的.ssh目录中生成公钥和私钥对
生成密钥后,您需要从机器A的.ssh目录复制公钥{extension.pub}
现在登录到机器B,进入它的.ssh文件夹。现在,您需要创建一个名为“authorized_keys
”的文件(如果不存在,请确保权限为只读),并将复制的公钥从机器a粘贴到机器B
这已经完成了
现在在计算机A上的主机{inventory}文件中使用以下格式:
[hosts]
Machine_B_ip ansible_ssh_user=username_here ansible_ssh_private_key_file=/path_of_private_key
例:
您还可以执行ansible ping来检查ansible是否能够通过ssh作为ansible all-m ping-vi inventory_文件进行通信
这不是它应该做的,这只会进入机器B内部,并检查机器a的公钥是否存在于授权密钥中这不是它应该做的,这只会进入机器B内部,检查机器A的公钥是否存在于授权密钥中。您能告诉我哪一个是私钥吗id\u rsa
文件?没错,id\u rsa是您需要在库存文件中传递的私钥,id\u rsa.pub是需要粘贴到机器B的授权密钥中的公钥,ansible\u ssh\u user
是远程用户,不是吗?我一步一步地跟着它走,但还是出错了。可能某些sshd\u config
错误?错误是什么?ansible版本是什么??另请注意:Ansible 2.0已经弃用了来自Ansible_ssh_用户、Ansible_ssh_主机和Ansible_ssh_端口的“ssh”,改为Ansible_用户、Ansible_主机和Ansible_端口,或者根据新配置更改问题并粘贴错误。您能告诉我哪个是私钥吗id\u rsa
文件?没错,id\u rsa是您需要在库存文件中传递的私钥,id\u rsa.pub是需要粘贴到机器B的授权密钥中的公钥,ansible\u ssh\u user
是远程用户,不是吗?我一步一步地跟着它走,但还是出错了。可能某些sshd\u config
错误?错误是什么?ansible版本是什么??另请注意:Ansible 2.0已经弃用了来自Ansible_ssh_用户、Ansible_ssh_主机和Ansible_ssh_端口的“ssh”,改为Ansible_用户、Ansible_主机和Ansible_端口,或者根据新配置更改问题,并粘贴错误。