community.general.ssh_config module – Manage SSH config for user
Note
This module is part of the community.general collection (version 10.7.5).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install community.general.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.general.ssh_config.
New in community.general 2.0.0
Synopsis
- Configures SSH hosts with special - IdentityFiles and hostnames.
Requirements
The below requirements are needed on the host that executes this module.
- paramiko 
Parameters
| Parameter | Comments | 
|---|---|
| Sets the  Choices: 
 | |
| Sets the  Choices: 
 | |
| Sets the  | |
| Sets the  | |
| Sets the  | |
| Sets the  Choices: 
 | |
| Which group this configuration file belongs to. If none given,  | |
| The endpoint this configuration is valid for. Can be an actual address on the internet or an alias that will connect to the value of  | |
| Sets the  | |
| The actual host to connect to when connecting to the host defined. | |
| Specifies that SSH should only use the configured authentication identity and certificate files (either the default files, or those explicitly configured in the  Choices: 
 | |
| The path to an identity file (SSH private key) that will be used when connecting to this host. File need to exist and have mode  | |
| Provides the option to specify arbitrary SSH config entry options via a dictionary. The key names must be lower case. Keys with upper case values are rejected. The values must be strings. Other values are rejected. | |
| The actual port to connect to when connecting to the host defined. | |
| Sets the  Mutually exclusive with  | |
| Sets the  Mutually exclusive with  | |
| Specifies the user to log in as. | |
| Whether a host entry should exist or not. Choices: 
 | |
| Whether to strictly check the host key when doing connections to the remote host. The value  Choices: 
 | |
| Which user account this configuration file belongs to. If none given and  If a user is given,  Mutually exclusive with  | |
| Sets the user known hosts file option. | 
Attributes
| Attribute | Support | Description | 
|---|---|---|
| Support: full | Can run in  | |
| Support: none | Will return details on what has changed (or possibly needs changing in  | 
Examples
- 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
    other_options:
      serveraliveinterval: '30'
- name: Add SSH config with key auto-added to agent
  community.general.ssh_config:
    user: devops
    host: "example.com"
    hostname: "staging.example.com"
    identity_file: "/home/devops/.ssh/id_rsa"
    add_keys_to_agent: true
    state: present
- name: Delete a host from the configuration
  community.general.ssh_config:
    ssh_config_file: "{{ ssh_config_test }}"
    host: "example.com"
    state: absent
Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Description | 
|---|---|
| A list of host added. Returned: success Sample:  | |
| A list of host diff changes. Returned: on change Sample:  | |
| A list of host changed. Returned: success Sample:  | |
| A list of host removed. Returned: success Sample:  | 
