On this page
community.general.ssh_config – Manage SSH config for user
Note
This plugin is part of the community.general collection (version 3.8.1).
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.
To use it in a playbook, specify: community.general.ssh_config.
New in version 2.0.0: of community.general
Synopsis
- Configures SSH hosts with special ``IdentityFile``s and hostnames.
 
Requirements
The below requirements are needed on the host that executes this module.
- StormSSH
 
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| group
        
        string
         | 
      
        
        Which group this configuration file belongs to.
        
       
        If none given, user is used.
         | 
     |
| host
        
        string / required
         | 
      
        
        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 hostname.
         | 
     |
| hostname
        
        string
         | 
      
        
        The actual host to connect to when connecting to the host defined.
         | 
     |
| identity_file
        
        path
         | 
      
        
        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  0600 to be valid.
        | 
     |
| port
        
        string
         | 
      
        
        The actual port to connect to when connecting to the host defined.
         | 
     |
| proxycommand
        
        string
         | 
      
        
        Sets the  ProxyCommand option.
        | 
     |
| remote_user
        
        string
         | 
      
        
        Specifies the user to log in as.
         | 
     |
| ssh_config_file
        
        path
         | 
      
        
        SSH config file.
        
       
        If user and this option are not specified,  
       /etc/ssh/ssh_config is used.
       
        Mutually exclusive with user.
         | 
     |
| state
        
        string
         | 
      
       
  | 
      
        
        Whether a host entry should exist or not.
         | 
     
| strict_host_key_checking
        
        string
         | 
      
       
  | 
      
        
        Whether to strictly check the host key when doing connections to the remote host.
         | 
     
| user
        
        string
         | 
      
        
        Which user account this configuration file belongs to.
        
       
        If none given and ssh_config_file is not specified,  
       /etc/ssh/ssh_config is used.
       
        If a user is given,  
       ~/.ssh/config is used.
       
        Mutually exclusive with ssh_config_file.
         | 
     |
| user_known_hosts_file
        
        string
         | 
      
        
        Sets the user known hosts file option.
         | 
     
Notes
Note
- Supports check mode.
 
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
- 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 | Returned | Description | 
|---|---|---|
| hosts_added
        
        list / elements=string
         | 
      success | 
        
        A list of host added.
         Sample:
        
       
        ['example.com']
         | 
     
| hosts_change_diff
        
        list / elements=string
         | 
      on change | 
        
        A list of host diff changes.
         Sample:
        
       
        [{'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
        
        list / elements=string
         | 
      success | 
        
        A list of host changed.
         Sample:
        
       
        ['example.com']
         | 
     
| hosts_removed
        
        list / elements=string
         | 
      success | 
        
        A list of host removed.
         Sample:
        
       
        ['example.com']
         | 
     
Authors
- Björn Andersson (@gaqzi)
 - Abhijeet Kasurde (@Akasurde)
 
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/latest/collections/community/general/ssh_config_module.html