informatiquecdc.win_authorized_key

win_authorized_key - 添加或删除 SSH 授权密钥

概述

  • Ansible 模块用于在基于 Windows 的系统上为特定用户帐户添加或删除 SSH 授权密钥。

需求

在执行此模块的主机上需要满足以下要求。

  • Win32 OpenSSH

参数

参数 选择项/默认值 说明
user
字符串 / 必需
需要修改的远程主机上的用户名,该用户的 authorized_keys 文件将被修改
key
字符串 / 必需
SSH 公钥,可以是字符串或 (自 1.9 起) url https://github.com/username.keys
path
字符串
默认:
(homedir)+/.ssh/authorized_keys
授权密钥文件的备用路径
manage_dir
布尔值
选择项:
  • 是 ←
此模块是否应该管理授权密钥文件的目录。
如果设置为“是”,模块将创建目录,并设置已有目录的所有者和权限。
如果您使用与 path 设置的授权密钥不同的目录,请确保将 manage_dir 设置为 ,因为这样会导致您无法访问 SSH。请参见下面的示例。
state
字符串
选择项:
  • 存在 ←
  • 缺失
指定的密钥 (及其密钥选项) 是否应该在文件中
key_options
字符串
需要添加到 authorized_keys 文件中的 SSH 密钥选项字符串
exclusive
布尔值
选择项:
  • 否 ←
是否从 authorized_keys 文件中删除所有其他未指定的密钥。多个密钥可以通过换行符分隔,在单个 key 字符串值中指定。
此选项不适用于循环,如果您使用 with_,它将在循环的每次迭代中排他性地处理。如果要将多个密钥放入文件中,需将它们作为一批全部传递给 key
validate_certs
布尔值
选择项:
  • 是 ←
仅在使用 HTTPS URL 作为密钥源时适用。
如果设置为 ,则不会验证 SSL 证书。
这只能在使用自签名证书的个人控制网站上设置为 ,因为这会避免验证源网站。
comment
字符串
更改公钥上的注释。在从 GitHub 或 GitLab 获取时,重写注释非常有用。
如果未指定注释,将保留现有注释。
follow
布尔值
选择项:
  • 否 ←
跟随路径符号链接而不是替换它

示例

---
roles:
  - win_authorized_key

tasks:

  - name: 从文件设置授权密钥
    win_authorized_key:
      user: charlie
      state: present
      key: "{{ lookup('file', 'c:/users/charlie/.ssh/id_rsa.pub') }}"

  - name:  URL 设置授权密钥
    win_authorized_key:
      user: charlie
      state: present
      key: https://github.com/charlie.keys

  - name: 在备用位置设置授权密钥
    win_authorized_key:
      user: charlie
      state: present
      key: "{{ lookup('file', 'c:/users/charlie/.ssh/id_rsa.pub') }}"
      path: c:/ProgramData/ssh/administrators_authorized_key
      manage_dir: False

  - name: 设置多个授权密钥
    win_authorized_key:
      user: deploy
      state: present
      key: '{{ item }}'
    with_file:
      - public_keys/doe-jane
      - public_keys/doe-john

  - name: 设置定义密钥选项的授权密钥
    win_authorized_key:
      user: charlie
      state: present
      key: "{{ lookup('file', 'c:/users/charlie/.ssh/id_rsa.pub') }}"
      key_options: 'no-port-forwarding,from="10.0.1.1"'

  - name: 在不验证 TLS/SSL 证书的情况下设置授权密钥
    win_authorized_key:
      user: charlie
      state: present
      key: https://github.com/user.keys
      validate_certs: False

  - name: 设置授权密钥,移除所有已设置的授权密钥
    win_authorized_key:
      user: administrator
      key: '{{ item }}'
      state: present
      exclusive: True
    with_file:
      - public_keys/doe-jane

返回值

常见返回值的文档见 这里,以下是此模块特有的字段:

返回值 描述
exclusive
布尔值
成功 密钥是否被强制为单一的。

示例:
False
key
字符串
成功 模块正在处理的密钥。

示例:
https://github.com/user.keys
key_option
字符串
成功 与密钥相关的密钥选项。
keyfile
字符串
成功 授权密钥文件的路径。

示例:
C:/users/charlie/.ssh/authorized_keys
manage_dir
布尔值
成功 此模块是否管理授权密钥文件的目录。

示例:
True
path
字符串
成功 授权密钥文件的备用路径。
state
字符串
成功 指定的密钥 (及其密钥选项) 是否应该在文件中。

示例:
present
unique
布尔值
成功 密钥是否唯一。

示例:
False
user
字符串
成功 需要修改的远程主机上的用户名。

示例:
user
validate_certs
布尔值
成功 仅在使用 HTTPS URL 作为密钥源时适用。如果设置为 ,将不会验证 SSL 证书。

示例:
True

作者

  • Stéphane Bilqué (@sbilque) - PowerShell 中的翻译
  • Brad Olson (brado@movedbylight.com) - 最初的 Python 工作

许可证

该项目遵循 GNU 通用公共许可证 v3.0。

查看 LICENSE 以查看完整文本。

关于项目

Adds or removes SSH authorized keys for particular user accounts on Windows-based systems.

安装
ansible-galaxy install informatiquecdc.win_authorized_key
许可证
gpl-3.0
下载
6.7k
拥有者
Informatique CDC, subsidiary of Group Caisse des Dépôts is a key player in IT services and digital trust.