authorized_keys "invalid key specified: s" error
XaTTa6bl4 opened this issue · comments
$ ansible --version
ansible 2.7.6
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.15rc1 (default, Nov 12 2018, 14:31:15) [GCC 7.3.0]
With task "Adding user's authorized keys" we have error:
failed: [192.168.24.2] (item={u'username': u'test', u'authorized_keys': u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC85ntA1908bbJ7f+ELGFvHcNQ3Acqen9iFhwVeyPb1aqGLhyY7UJb1CerlF7ehTQSUhogeze8Q70fB4+jUJ4eT2056i4teSWZeo1dwqjU1IHTX8BBKerwuXsn8gOHDVkr0D0FMKKJiWOL/E94i8hoMIYNjmjihqkVy67xNHXZSRQ== test@anstest', u'shell': u'/bin/bash', u'name': u'Ansible User', u'authorized_keys_exclusive': True, u'home_create': True}) => {
"changed": false,
"invocation": {
"module_args": {
"comment": null,
"exclusive": true,
"follow": false,
"key": "s\ns\nh\n-\nr\ns\na\n \nA\nA\nA\nA\nB\n3\nN\nz\na\nC\n1\ny\nc\n2\nE\nA\nA\nA\nA\nD\nA\nQ\nA\nB\nA\nA\nA\nA\ng\nQ\nC\n8\n5\nn\nt\nA\n1\n9\n0\n8\nb\nb\nJ\n7\nf\n+\nE\nL\nG\nF\nv\nH\nc\nN\nQ\n3\nA\nc\nq\ne\nn\n9\ni\nF\nh\nw\nV\ne\ny\nP\nb\n1\na\nq\nG\nL\nh\ny\nY\n7\nU\nJ\nb\n1\nC\ne\nr\nl\nF\n7\ne\nh\nT\nQ\nS\nU\nh\no\ng\ne\nz\ne\n8\nQ\n7\n0\nf\nB\n4\n+\nj\nU\nJ\n4\ne\nT\n2\n0\n5\n6\ni\n4\nt\ne\nS\nW\nZ\ne\no\n1\nd\nw\nq\nj\nU\n1\nI\nH\nT\nX\n8\nB\nB\nK\ne\nr\nw\nu\nX\ns\nn\n8\ng\nO\nH\nD\nV\nk\nr\n0\nD\n0\nF\nM\nK\nK\nJ\ni\nW\nO\nL\n/\nE\n9\n4\ni\n8\nh\no\nM\nI\nY\nN\nj\nm\nj\ni\nh\nq\nk\nV\ny\n6\n7\nx\nN\nH\nX\nZ\nS\nR\nQ\n=\n=\n \nt\ne\ns\nt\n@\na\nn\ns\nt\ne\ns\nt",
"key_options": null,
"keyfile": "/home/test/.ssh/authorized_keys",
"manage_dir": true,
"path": null,
"state": "present",
"unique": false,
"user": "test",
"validate_certs": true
}
},
"item": {
"authorized_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC85ntA1908bbJ7f+ELGFvHcNQ3Acqen9iFhwVeyPb1aqGLhyY7UJb1CerlF7ehTQSUhogeze8Q70fB4+jUJ4eT2056i4teSWZeo1dwqjU1IHTX8BBKerwuXsn8gOHDVkr0D0FMKKJiWOL/E94i8hoMIYNjmjihqkVy67xNHXZSRQ== test@anstest",
"authorized_keys_exclusive": true,
"home_create": true,
"name": "Ansible User",
"shell": "/bin/bash",
"username": "test"
},
"msg": "invalid key specified: s"
}
In the module we can see string:
key: "{{ item.authorized_keys | default([]) | join('\n') }}"
join('\n') adds \n after each symbol. Why it was added? May be for fix some old bug?
Hi, make sure you use an array as authorized_keys
. This role allows for adding multiple keys.
- hosts: all
become: yes
roles:
- weareinteractive.users
vars:
users:
- username: foo
authorized_keys:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC85ntA1908bbJ7f+ELGFvHcNQ3Acqen9iFhwVeyPb1aqGLhyY7UJb1CerlF7ehTQSUhogeze8Q70fB4+jUJ4eT2056i4teSWZeo1dwqjU1IHTX8BBKerwuXsn8gOHDVkr0D0FMKKJiWOL/E94i8hoMIYNjmjihqkVy67xNHXZSRQ== test@anstest"
FYI: the join
thing is used cause at time of writing this role, ansible failed if the authorized_keys
index was not provided on a user. this was the only way to work around this. I think it's now possible to do a loop without failing
Hi! I've tested with array var and with key-file. It always fails. Could you, please, check it with ansible 2.7.6?
Running make ubuntu18.04
uses latest 2.7.6 version.
Could you paste in your playbook. The above line:
...
"key": "s\ns\nh\n-\nr\ns\na\n \nA\nA\nA\nA\nB\n3\nN\nz\na\nC\n1\ny\nc\n2\nE\nA\nA\nA\nA\nD\nA\nQ\nA\nB\nA\nA\nA\nA\ng\nQ\nC\n8\n5\nn\nt\nA\n1\n9\n0\n8\nb\nb\nJ\n7\nf\n+\nE\nL\nG\nF\nv\nH\nc\nN\nQ\n3\nA\nc\nq\ne\nn\n9\ni\nF\nh\nw\nV\ne\ny\nP\nb\n1\na\nq\nG\nL\nh\ny\nY\n7\nU\nJ\nb\n1\nC\ne\nr\nl\nF\n7\ne\nh\nT\nQ\nS\nU\nh\no\ng\ne\nz\ne\n8\nQ\n7\n0\nf\nB\n4\n+\nj\nU\nJ\n4\ne\nT\n2\n0\n5\n6\ni\n4\nt\ne\nS\nW\nZ\ne\no\n1\nd\nw\nq\nj\nU\n1\nI\nH\nT\nX\n8\nB\nB\nK\ne\nr\nw\nu\nX\ns\nn\n8\ng\nO\nH\nD\nV\nk\nr\n0\nD\n0\nF\nM\nK\nK\nJ\ni\nW\nO\nL\n/\nE\n9\n4\ni\n8\nh\no\nM\nI\nY\nN\nj\nm\nj\ni\nh\nq\nk\nV\ny\n6\n7\nx\nN\nH\nX\nZ\nS\nR\nQ\n=\n=\n \nt\ne\ns\nt\n@\na\nn\ns\nt\ne\ns\nt",
...
only occurs if you don't use an array
Oh, sorry, you are right. My bad, it was not array in my last tests. Let's close the issue, Thank you!