Ansible的随机SSH权限问题

Ansible的随机SSH权限问题,ssh,ansible,permissions,Ssh,Ansible,Permissions,我在ansible上遇到了一个奇怪的问题,我试图在我的服务器上创建一个初始设置,这样我就可以使用SSH密钥而不是密码,所以我所做的是针对每个服务器组,我有一个创建SSH密钥的路径,在服务器上使用ansible通过密码提示授权密钥,这样,在重新生成密钥之前,我就不需要再次使用密码 我通过SSH-keygen-f./SSH/server/id\u rsa创建了SSH密钥 我用SSH密钥的位置设置了hosts文件,如下所示 [server] 172.16.0.211 [server:vars] an

我在ansible上遇到了一个奇怪的问题,我试图在我的服务器上创建一个初始设置,这样我就可以使用SSH密钥而不是密码,所以我所做的是针对每个服务器组,我有一个创建SSH密钥的路径,在服务器上使用ansible通过密码提示授权密钥,这样,在重新生成密钥之前,我就不需要再次使用密码

我通过SSH-keygen-f./SSH/server/id\u rsa创建了SSH密钥

我用SSH密钥的位置设置了hosts文件,如下所示

[server]
172.16.0.211

[server:vars]
ansible_user=ubuntu
ansible_ssh_private_key_file=./ssh/server/id_rsa.pub
我的ansible剧本中有以下内容

- hosts: all
  gather_facts: yes
  become: yes
  tasks:
    - name: Set authorized key for user {{ ansible_user }} copying it from current user
      authorized_key:
        user: "{{ ansible_user }}"
        state: present
        key: "{{ lookup('file', '{{ ansible_ssh_private_key_file }}') }}"
我正在运行
ansible playbook-K-K./ssh.yaml--verbose
,因此我必须先输入密码,然后它才能设置我的ssh密钥,该密钥可以工作,它会更新,我可以使用
ansible all--module name ping运行ping,并且ping可以正常工作

172.16.0.211 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
但是,如果我使用新的SSH密钥再次运行ping或任何其他剧本,则是随机的。。 上面说

我试图使用chmod600./ssh/server/id_rsa.pub
为它授予权限,但现在ping说

172.16.0.211 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Load key \"./ssh/server/id_rsa.pub\": invalid format\r\nubuntu@172.16.0.211: Permission denied (publickey,password).",
    "unreachable": true
}
实际上我能让它工作几分钟。。我将它发送到多个服务器。。但它显示出类似的错误,但只有其中两个

172.16.0.212 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
172.16.0.210 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
172.16.0.211 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
172.16.0.213 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
172.16.0.214 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0644 for './ssh/server/id_rsa.pub' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"./ssh/server/id_rsa.pub\": bad permissions\r\nubuntu@172.16.0.214: Permission denied (publickey,password).",
    "unreachable": true
}
172.16.0.215 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0644 for './ssh/server/id_rsa.pub' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"./ssh/server/id_rsa.pub\": bad permissions\r\nubuntu@172.16.0.215: Permission denied (publickey,password).",
    "unreachable": true
}
我能让它再次工作的唯一方法是再次重新生成密钥并再次复制回服务器,但这种情况会再次发生

这感觉不像是权限问题,因为它对其他服务器使用相同的SSH密钥

在键入此内容时,再次运行,但现在都失败了。。我仍然能够通过密码连接到服务器,所以服务器没有问题


是否知道是什么原因导致了这种情况?

同时更新。。我可以通过运行ssh.yaml playbook而不用重新创建ssh密钥来再次运行它,而ssh密钥没有更新任何内容。。我开始怀疑这是否与缓存密码提示有关?
ansible\u ssh\u private\u key\u file=./ssh/server/id\u rsa.pub
您的var名称包含
private
引用文件的扩展名是
.pub
。似乎有点混乱。嗯,说得好。。我可能不得不重新考虑如何设置,我希望服务器组使用不同的密钥,但没有意识到我在私有变量中使用了公钥。。好的捕手,这似乎澄清了这一点。。而是为ssh.yaml剧本创建了一个ansible_ssh_public_key_文件
172.16.0.212 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
172.16.0.210 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
172.16.0.211 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
172.16.0.213 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
172.16.0.214 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0644 for './ssh/server/id_rsa.pub' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"./ssh/server/id_rsa.pub\": bad permissions\r\nubuntu@172.16.0.214: Permission denied (publickey,password).",
    "unreachable": true
}
172.16.0.215 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\n@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @\r\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r\nPermissions 0644 for './ssh/server/id_rsa.pub' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.\r\nLoad key \"./ssh/server/id_rsa.pub\": bad permissions\r\nubuntu@172.16.0.215: Permission denied (publickey,password).",
    "unreachable": true
}