ansible的authorized_key模块

摘要

用于向远程主机的某个账户的authorized_keys文件中增加公钥 或 从中移除公钥。


选项

  • exclusive
    是否从authorized_keys文件中移除所有其他的未指定的公钥。当想要指定多个公钥的时候,可以将key参数指定为 新行 分隔的公钥列表。
    需要注意的是,当使用with_*的时候,每次迭代都会进行移除操作。
    (Choices: yes, no)[Default: no]
  • key
    ssh公钥。可以是一个字符串,也可以是一个url。
  • manage_dir
    是否管理authorized_keys文件所在的目录。如果设置了这个选项,那么authorized_key模块,会创建这个目录,并且会设置目录的所有者和权限。
    (Choices: yes, no)[Default: yes]
  • path
    authorized_keys文件设置一个替代的路径。
    [Default: (homedir)+/.ssh/authorized_keys]
  • state
    present表示添加公钥,absent表示删除公钥。
  • user
    远程主机上的用户名。
  • validate_certs
    只有key的值是https url的时候,才起作用。如果设置该选项为no,那么不会校验SSL证书。
    (Choices: yes, no)[Default: yes]

例子

  • 使用管理机上的本地文件的例子:
    - authorized_key: user=charlie key="{{ lookup('file', '/home/charlie/.ssh/id_rsa.pub') }}"
  • 使用github url作为key的来源
    - authorized_key: user=charlie key=https://github.com/charlie.keys
  • authorized_keys文件指定一个替代的路径
- authorized_key:
    user: charlie
    key: "{{ lookup('file', '/home/charlie/.ssh/id_rsa.pub') }}"
    path: '/etc/ssh/authorized_keys/charlie'
    manage_dir: no
  • 使用with_file循环
- name: Set up authorized_keys for the deploy user
  authorized_key: user=deploy key="{{ item }}"
  with_file:
    - public_keys/doe-jane
    - public_keys/doe-john
  • 使用ssh key选项
- authorized_key:
    user: charlie
    key:  "{{ lookup('file', '/home/charlie/.ssh/id_rsa.pub') }}"
    key_options: 'no-port-forwarding,from="10.0.1.1"'
  • 使用validate_certs
- authorized_key: user=charlie key=https://github.com/user.keys validate_certs=no
  • 向远程主机的root用户的authorized_keys文件中,增加本地的public_keys/doe-jane文件中列出的公钥列表,并删除不在这个列表中的公钥
- authorized_key: user=root key="{{ item }}" state=present exclusive=yes
  with_file:
    - public_keys/doe-jane
  • 将正在运行ansible的用户的主目录下的.ssh/id_rsa.pub文件里的公钥拷贝到远程主机的ubuntu用户的authorized_keys文件中
- authorized_key: user=ubuntu key="{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}"
  become: yes

感谢浏览tim chow的作品!

如果您喜欢,可以分享到: 更多

如果您有任何疑问或想要与tim chow进行交流

可点此给tim chow发信

如有问题,也可在下面留言: