Ansible:创建新用户并从本地系统复制ssh-keys

时间:2017-06-28 09:01:17

标签: ansible ssh-keys

我是Ansible的新手,我在远程计算机上创建新用户并将ssh-keys(用于git)从本地计算机复制到远程计算机的新用户。 基本上,从localmachine/somepath/keys/remotemachine/newuser/home/.ssh/

到目前为止,我试过了:

- name: Create user
  hosts: remote_host
  remote_user: root
  tasks:
    - name: Create new user
      user: name=newuser ssh_key_file=../keys/newuser

虽然这会在远程计算机上创建newuser,但它不会复制任何键(.ssh仍为空)。我还尝试authorized_key作为第二个任务,但在尝试复制私钥时只收到错误消息。

在我运行密钥并且newuser已经存在之后,是否仍然可以添加密钥。即,我可以再次运行它还是我必须先删除新用户?

1 个答案:

答案 0 :(得分:3)

ssh_key_fileuser module选项generate_ssh_key使用的路径。它不是上传到创建的远程用户的本地SSH密钥的路径。

如果要上传SSH密钥,则必须使用copy module

- name: Create user
  hosts: remote_host
  remote_user: root
  tasks:
    - name: Create new user
      user:
        name: newuser
    - name: Create .ssh folder
      file:
        path: ~newuser/.ssh
        state: directory
        owner: newuser
        group: newuser
        mode: 0700
     - name: Upload SSH key
       copy:
        src: ../keys/newuser
        dest: ~newuser/.ssh/id_rsa
        owner: newuser
        group: newuser
        mode: 0700
BTW,建议使用YAML语法而不是args语法。