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

Ansible:创建新用户并从本地系统复制ssh密钥,ansible,ssh-keys,Ansible,Ssh Keys,我是Ansible的新手,我正在努力在远程机器上创建一个新用户,并将ssh密钥(用于git)从本地机器复制到远程机器的新用户。 基本上,从localmachine/somepath/keys/到remotemachine/newuser/home/.ssh/ 到目前为止,我试过: - name: Create user hosts: remote_host remote_user: root tasks: - name: Create new user user:

我是Ansible的新手,我正在努力在远程机器上创建一个新用户,并将ssh密钥(用于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
虽然这会在远程计算机上创建新用户,但不会复制任何密钥(.ssh仍然为空)。我还尝试将
authorized_key
作为第二个任务,但在尝试复制私钥时只收到一条错误消息


甚至有可能在我已经运行并且
newuser
已经存在之后,仍然添加了密钥。也就是说,我可以再次运行它,还是必须先删除新用户?

ssh\u-key\u文件
是的
generate\u-ssh\u-key
选项使用的路径。它不是本地SSH密钥的路径,无法上载到创建的远程用户

如果要上载SSH密钥,必须使用


顺便说一句,建议使用YAML语法而不是args语法。

ssh\u-key\u文件
是的
generate\u-ssh\u-key
选项使用的路径。它不是本地SSH密钥的路径,无法上载到创建的远程用户

如果要上载SSH密钥,必须使用


顺便说一句,建议使用YAML语法而不是args语法。

似乎
.ssh
已经创建,所以我跳过了该任务。但是谢谢你给我指出
copy
-我走错了方向。好像
.ssh
已经创建了,所以我跳过了那个任务。但是谢谢你把我指给我看
copy
——我走错了方向。
- 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