将密钥对添加到远程 linux 服务器
Add Key pair to remote linux server
我想使用 ansible 在 linux 服务器 "Ubuntu 18.04lts" 上向 "tuser" 添加一个密钥对,只是为了避免基于密码的登录。
所以我在 yml 剧本文件中成功地尝试了这种方式:
- name: Set authorized key for tuser
become: yes
authorized_key:
user: tuser
state: present
key: "{{ lookup('file', '/home/rogg/.ssh/id_rsa.pub') }}"
嗯,但是当我尝试使用密钥中的其他位置时:
- name: Set authorized key for tuser
become: yes
authorized_key:
user: tuser
state: present
key: "{{ role_path }}/files/csbin_keys/id_rsa.pub"
我得到:
"msg": "invalid key specified
我已经使用 {{ role_path }} 复制其他文件并且可以正常工作,但在这个密钥中它没有
authorized_key
模块的文档摘录:
= key
The SSH public key(s), as a string or (since 1.9) url (https://github.com/username.keys)
在您的第一个示例中,lookup('file', '/home/rogg/.ssh/id_rsa.pub')
读取文件 /home/rogg/.ssh/id_rsa.pub
并将其内容作为 key
值提供。
在您的第二个示例中,您尝试将文件路径作为 key
值提供。
用查找替换它:
lookup('file', role_path+'/files/csbin_keys/id_rsa.pub')
你也可以使用with_file
选项,读入一个文件的内容:
- name: Ensure the public key is populated
authorized_key:
user: john
state: present
key: '{{ item }}'
with_file:
- /home/john/.ssh/id_rsa.pub
我想使用 ansible 在 linux 服务器 "Ubuntu 18.04lts" 上向 "tuser" 添加一个密钥对,只是为了避免基于密码的登录。 所以我在 yml 剧本文件中成功地尝试了这种方式:
- name: Set authorized key for tuser
become: yes
authorized_key:
user: tuser
state: present
key: "{{ lookup('file', '/home/rogg/.ssh/id_rsa.pub') }}"
嗯,但是当我尝试使用密钥中的其他位置时:
- name: Set authorized key for tuser
become: yes
authorized_key:
user: tuser
state: present
key: "{{ role_path }}/files/csbin_keys/id_rsa.pub"
我得到:
"msg": "invalid key specified
我已经使用 {{ role_path }} 复制其他文件并且可以正常工作,但在这个密钥中它没有
authorized_key
模块的文档摘录:
=
key
The SSH public key(s), as a string or (since 1.9) url (https://github.com/username.keys)
在您的第一个示例中,lookup('file', '/home/rogg/.ssh/id_rsa.pub')
读取文件 /home/rogg/.ssh/id_rsa.pub
并将其内容作为 key
值提供。
在您的第二个示例中,您尝试将文件路径作为 key
值提供。
用查找替换它:
lookup('file', role_path+'/files/csbin_keys/id_rsa.pub')
你也可以使用with_file
选项,读入一个文件的内容:
- name: Ensure the public key is populated
authorized_key:
user: john
state: present
key: '{{ item }}'
with_file:
- /home/john/.ssh/id_rsa.pub