community.general.ssh_config 模块 – 管理用户的 SSH 配置

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,有关详细信息,请参阅要求

要在 playbook 中使用它,请指定:community.general.ssh_config

community.general 2.0.0 中的新增功能

概要

  • 使用特殊的 IdentityFile 和主机名配置 SSH 主机。

要求

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

  • paramiko

参数

参数

注释

add_keys_to_agent

布尔值

在 community.general 8.2.0 中添加

设置 AddKeysToAgent 选项。

选项

  • false

  • true

controlmaster

字符串

在 community.general 8.1.0 中添加

设置 ControlMaster 选项。

选项

  • "yes"

  • "no"

  • "ask"

  • "auto"

  • "autoask"

controlpath

字符串

在 community.general 8.1.0 中添加

设置 ControlPath 选项。

controlpersist

字符串

在 community.general 8.1.0 中添加

设置 ControlPersist 选项。

dynamicforward

字符串

在 community.general 10.1.0 中添加

设置 DynamicForward 选项。

forward_agent

布尔值

在 community.general 4.0.0 中添加

设置 ForwardAgent 选项。

选项

  • false

  • true

group

字符串

此配置文件所属的组。

如果没有给定,则使用 user

host

字符串 / 必需

此配置有效的端点。

可以是 Internet 上的实际地址,也可以是连接到 hostname 值的别名。

host_key_algorithms

字符串

在 community.general 6.1.0 中添加

设置 HostKeyAlgorithms 选项。

hostname

字符串

连接到定义的主机时要连接的实际主机。

identities_only

布尔值

在 community.general 8.2.0 中添加

指定 SSH 应仅使用配置的身份验证身份和证书文件(默认文件或 ssh_config 文件中显式配置的文件,或在 ssh 命令行上传递的文件),即使 ssh-agent 或 PKCS11Provider 或 SecurityKeyProvider 提供更多身份也是如此。

选项

  • false

  • true

identity_file

路径

将用于连接到此主机的身份文件(SSH 私钥)的路径。

文件需要存在且模式为 0600 才能有效。

port

字符串

连接到定义的主机时要连接的实际端口。

proxycommand

字符串

设置 ProxyCommand 选项。

proxyjump 互斥。

proxyjump

字符串

在 community.general 6.5.0 中添加

设置 ProxyJump 选项。

proxycommand 互斥。

remote_user

字符串

指定要登录的用户。

ssh_config_file

路径

SSH 配置文件。

如果未指定 user 和此选项,则使用 /etc/ssh/ssh_config

user 互斥。

state

字符串

主机条目是否存在。

选项

  • "present" ← (默认)

  • "absent"

strict_host_key_checking

字符串

在连接到远程主机时是否严格检查主机密钥。

自 community.general 8.6.0 起,支持值 accept-new

选项

  • "yes"

  • "no"

  • "ask"

  • "accept-new"

user

字符串

此配置文件所属的用户帐户。

如果没有给定,并且未指定 ssh_config_file,则使用 /etc/ssh/ssh_config

如果给定了用户,则使用 ~/.ssh/config

ssh_config_file 互斥。

user_known_hosts_file

字符串

设置用户已知主机文件选项。

属性

属性

支持

描述

check_mode

支持: 完全

可以在 check_mode 中运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持:

当处于差异模式时,会返回有关已更改的内容(或可能在 check_mode 中需要更改的内容)的详细信息。

示例

- name: Add a host in the configuration
  community.general.ssh_config:
    user: akasurde
    host: "example.com"
    hostname: "github.com"
    identity_file: "/home/akasurde/.ssh/id_rsa"
    port: '2223'
    state: present

- name: Delete a host from the configuration
  community.general.ssh_config:
    ssh_config_file: "{{ ssh_config_test }}"
    host: "example.com"
    state: absent

返回值

通用返回值在此处有文档记录:此处,以下是此模块特有的字段

描述

hosts_added

列表 / 元素=字符串

已添加的主机列表。

返回: 成功

示例: ["example.com"]

hosts_change_diff

列表 / 元素=字符串

主机差异更改的列表。

返回: 当发生更改时

示例: [{"example.com": {"new": {"hostname": "github.com", "identityfile": ["/tmp/test_ssh_config/fake_id_rsa"], "port": "2224"}, "old": {"hostname": "github.com", "identityfile": ["/tmp/test_ssh_config/fake_id_rsa"], "port": "2224"}}}]

hosts_changed

列表 / 元素=字符串

已更改的主机列表。

返回: 成功

示例: ["example.com"]

hosts_removed

列表 / 元素=字符串

已删除的主机列表。

返回: 成功

示例: ["example.com"]

作者

  • Björn Andersson (@gaqzi)

  • Abhijeet Kasurde (@Akasurde)