1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

ssh_config: Add add_keys_to_agent option (#7703)

* Add ssh_config module option for add_keys_to_agent

* Add changelog fragment for 7703

---------

Co-authored-by: Michael Finney <michael.finney@tpwd.texas.gov>
This commit is contained in:
mjfinney 2023-12-17 08:14:07 -06:00 committed by GitHub
parent 838e4e3f02
commit 5e5e1963c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 0 deletions

View file

@ -0,0 +1,2 @@
minor_changes:
- ssh_config - new feature to set ``AddKeysToAgent`` option to ``yes`` or ``no`` (https://github.com/ansible-collections/community.general/pull/7703).

View file

@ -97,6 +97,11 @@ options:
- Sets the C(ForwardAgent) option. - Sets the C(ForwardAgent) option.
type: bool type: bool
version_added: 4.0.0 version_added: 4.0.0
add_keys_to_agent:
description:
- Sets the C(AddKeysToAgent) option.
type: bool
version_added: 8.2.0
ssh_config_file: ssh_config_file:
description: description:
- SSH config file. - SSH config file.
@ -252,6 +257,7 @@ class SSHConfig(object):
proxyjump=self.params.get('proxyjump'), proxyjump=self.params.get('proxyjump'),
host_key_algorithms=self.params.get('host_key_algorithms'), host_key_algorithms=self.params.get('host_key_algorithms'),
forward_agent=convert_bool(self.params.get('forward_agent')), forward_agent=convert_bool(self.params.get('forward_agent')),
add_keys_to_agent=convert_bool(self.params.get('add_keys_to_agent')),
controlmaster=self.params.get('controlmaster'), controlmaster=self.params.get('controlmaster'),
controlpath=self.params.get('controlpath'), controlpath=self.params.get('controlpath'),
controlpersist=fix_bool_str(self.params.get('controlpersist')), controlpersist=fix_bool_str(self.params.get('controlpersist')),
@ -346,6 +352,7 @@ def main():
proxycommand=dict(type='str', default=None), proxycommand=dict(type='str', default=None),
proxyjump=dict(type='str', default=None), proxyjump=dict(type='str', default=None),
forward_agent=dict(type='bool'), forward_agent=dict(type='bool'),
add_keys_to_agent=dict(type='bool'),
remote_user=dict(type='str'), remote_user=dict(type='str'),
ssh_config_file=dict(default=None, type='path'), ssh_config_file=dict(default=None, type='path'),
state=dict(type='str', default='present', choices=['present', 'absent']), state=dict(type='str', default='present', choices=['present', 'absent']),

View file

@ -15,6 +15,7 @@
host: "options.example.com" host: "options.example.com"
proxycommand: "ssh jumphost.example.com -W %h:%p" proxycommand: "ssh jumphost.example.com -W %h:%p"
forward_agent: true forward_agent: true
add_keys_to_agent: true
host_key_algorithms: "+ssh-rsa" host_key_algorithms: "+ssh-rsa"
controlmaster: "auto" controlmaster: "auto"
controlpath: "~/.ssh/sockets/%r@%h-%p" controlpath: "~/.ssh/sockets/%r@%h-%p"
@ -47,6 +48,7 @@
host: "options.example.com" host: "options.example.com"
proxycommand: "ssh jumphost.example.com -W %h:%p" proxycommand: "ssh jumphost.example.com -W %h:%p"
forward_agent: true forward_agent: true
add_keys_to_agent: true
host_key_algorithms: "+ssh-rsa" host_key_algorithms: "+ssh-rsa"
controlmaster: "auto" controlmaster: "auto"
controlpath: "~/.ssh/sockets/%r@%h-%p" controlpath: "~/.ssh/sockets/%r@%h-%p"
@ -68,6 +70,7 @@
host: "options.example.com" host: "options.example.com"
proxycommand: "ssh jumphost.example.com -W %h:%p" proxycommand: "ssh jumphost.example.com -W %h:%p"
forward_agent: true forward_agent: true
add_keys_to_agent: true
host_key_algorithms: "+ssh-rsa" host_key_algorithms: "+ssh-rsa"
controlmaster: "auto" controlmaster: "auto"
controlpath: "~/.ssh/sockets/%r@%h-%p" controlpath: "~/.ssh/sockets/%r@%h-%p"
@ -93,6 +96,7 @@
that: that:
- "'proxycommand ssh jumphost.example.com -W %h:%p' in slurp_ssh_config['content'] | b64decode" - "'proxycommand ssh jumphost.example.com -W %h:%p' in slurp_ssh_config['content'] | b64decode"
- "'forwardagent yes' in slurp_ssh_config['content'] | b64decode" - "'forwardagent yes' in slurp_ssh_config['content'] | b64decode"
- "'addkeystoagent yes' in slurp_ssh_config['content'] | b64decode"
- "'hostkeyalgorithms +ssh-rsa' in slurp_ssh_config['content'] | b64decode" - "'hostkeyalgorithms +ssh-rsa' in slurp_ssh_config['content'] | b64decode"
- "'controlmaster auto' in slurp_ssh_config['content'] | b64decode" - "'controlmaster auto' in slurp_ssh_config['content'] | b64decode"
- "'controlpath ~/.ssh/sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode" - "'controlpath ~/.ssh/sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode"
@ -104,6 +108,7 @@
host: "options.example.com" host: "options.example.com"
proxycommand: "ssh new-jumphost.example.com -W %h:%p" proxycommand: "ssh new-jumphost.example.com -W %h:%p"
forward_agent: false forward_agent: false
add_keys_to_agent: false
host_key_algorithms: "+ssh-ed25519" host_key_algorithms: "+ssh-ed25519"
controlmaster: no controlmaster: no
controlpath: "~/.ssh/new-sockets/%r@%h-%p" controlpath: "~/.ssh/new-sockets/%r@%h-%p"
@ -127,6 +132,7 @@
host: "options.example.com" host: "options.example.com"
proxycommand: "ssh new-jumphost.example.com -W %h:%p" proxycommand: "ssh new-jumphost.example.com -W %h:%p"
forward_agent: false forward_agent: false
add_keys_to_agent: false
host_key_algorithms: "+ssh-ed25519" host_key_algorithms: "+ssh-ed25519"
controlmaster: no controlmaster: no
controlpath: "~/.ssh/new-sockets/%r@%h-%p" controlpath: "~/.ssh/new-sockets/%r@%h-%p"
@ -153,6 +159,7 @@
that: that:
- "'proxycommand ssh new-jumphost.example.com -W %h:%p' in slurp_ssh_config['content'] | b64decode" - "'proxycommand ssh new-jumphost.example.com -W %h:%p' in slurp_ssh_config['content'] | b64decode"
- "'forwardagent no' in slurp_ssh_config['content'] | b64decode" - "'forwardagent no' in slurp_ssh_config['content'] | b64decode"
- "'addkeystoagent no' in slurp_ssh_config['content'] | b64decode"
- "'hostkeyalgorithms +ssh-ed25519' in slurp_ssh_config['content'] | b64decode" - "'hostkeyalgorithms +ssh-ed25519' in slurp_ssh_config['content'] | b64decode"
- "'controlmaster no' in slurp_ssh_config['content'] | b64decode" - "'controlmaster no' in slurp_ssh_config['content'] | b64decode"
- "'controlpath ~/.ssh/new-sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode" - "'controlpath ~/.ssh/new-sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode"
@ -184,6 +191,7 @@
that: that:
- "'proxycommand ssh new-jumphost.example.com -W %h:%p' in slurp_ssh_config['content'] | b64decode" - "'proxycommand ssh new-jumphost.example.com -W %h:%p' in slurp_ssh_config['content'] | b64decode"
- "'forwardagent no' in slurp_ssh_config['content'] | b64decode" - "'forwardagent no' in slurp_ssh_config['content'] | b64decode"
- "'addkeystoagent no' in slurp_ssh_config['content'] | b64decode"
- "'hostkeyalgorithms +ssh-ed25519' in slurp_ssh_config['content'] | b64decode" - "'hostkeyalgorithms +ssh-ed25519' in slurp_ssh_config['content'] | b64decode"
- "'controlmaster no' in slurp_ssh_config['content'] | b64decode" - "'controlmaster no' in slurp_ssh_config['content'] | b64decode"
- "'controlpath ~/.ssh/new-sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode" - "'controlpath ~/.ssh/new-sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode"
@ -233,6 +241,7 @@
that: that:
- "'proxycommand ssh new-jumphost.example.com -W %h:%p' not in slurp_ssh_config['content'] | b64decode" - "'proxycommand ssh new-jumphost.example.com -W %h:%p' not in slurp_ssh_config['content'] | b64decode"
- "'forwardagent no' not in slurp_ssh_config['content'] | b64decode" - "'forwardagent no' not in slurp_ssh_config['content'] | b64decode"
- "'addkeystoagent no' not in slurp_ssh_config['content'] | b64decode"
- "'hostkeyalgorithms +ssh-ed25519' not in slurp_ssh_config['content'] | b64decode" - "'hostkeyalgorithms +ssh-ed25519' not in slurp_ssh_config['content'] | b64decode"
- "'controlmaster auto' not in slurp_ssh_config['content'] | b64decode" - "'controlmaster auto' not in slurp_ssh_config['content'] | b64decode"
- "'controlpath ~/.ssh/sockets/%r@%h-%p' not in slurp_ssh_config['content'] | b64decode" - "'controlpath ~/.ssh/sockets/%r@%h-%p' not in slurp_ssh_config['content'] | b64decode"
@ -252,6 +261,7 @@
host: "options.example.com" host: "options.example.com"
proxyjump: "jumphost.example.com" proxyjump: "jumphost.example.com"
forward_agent: true forward_agent: true
add_keys_to_agent: true
host_key_algorithms: "+ssh-rsa" host_key_algorithms: "+ssh-rsa"
controlmaster: "auto" controlmaster: "auto"
controlpath: "~/.ssh/sockets/%r@%h-%p" controlpath: "~/.ssh/sockets/%r@%h-%p"
@ -284,6 +294,7 @@
host: "options.example.com" host: "options.example.com"
proxyjump: "jumphost.example.com" proxyjump: "jumphost.example.com"
forward_agent: true forward_agent: true
add_keys_to_agent: true
host_key_algorithms: "+ssh-rsa" host_key_algorithms: "+ssh-rsa"
controlmaster: "auto" controlmaster: "auto"
controlpath: "~/.ssh/sockets/%r@%h-%p" controlpath: "~/.ssh/sockets/%r@%h-%p"
@ -305,6 +316,7 @@
host: "options.example.com" host: "options.example.com"
proxyjump: "jumphost.example.com" proxyjump: "jumphost.example.com"
forward_agent: true forward_agent: true
add_keys_to_agent: true
host_key_algorithms: "+ssh-rsa" host_key_algorithms: "+ssh-rsa"
controlmaster: "auto" controlmaster: "auto"
controlpath: "~/.ssh/sockets/%r@%h-%p" controlpath: "~/.ssh/sockets/%r@%h-%p"
@ -330,6 +342,7 @@
that: that:
- "'proxyjump jumphost.example.com' in slurp_ssh_config['content'] | b64decode" - "'proxyjump jumphost.example.com' in slurp_ssh_config['content'] | b64decode"
- "'forwardagent yes' in slurp_ssh_config['content'] | b64decode" - "'forwardagent yes' in slurp_ssh_config['content'] | b64decode"
- "'addkeystoagent yes' in slurp_ssh_config['content'] | b64decode"
- "'hostkeyalgorithms +ssh-rsa' in slurp_ssh_config['content'] | b64decode" - "'hostkeyalgorithms +ssh-rsa' in slurp_ssh_config['content'] | b64decode"
- "'controlmaster auto' in slurp_ssh_config['content'] | b64decode" - "'controlmaster auto' in slurp_ssh_config['content'] | b64decode"
- "'controlpath ~/.ssh/sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode" - "'controlpath ~/.ssh/sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode"
@ -341,6 +354,7 @@
host: "options.example.com" host: "options.example.com"
proxyjump: "new-jumphost.example.com" proxyjump: "new-jumphost.example.com"
forward_agent: false forward_agent: false
add_keys_to_agent: false
host_key_algorithms: "+ssh-ed25519" host_key_algorithms: "+ssh-ed25519"
controlmaster: no controlmaster: no
controlpath: "~/.ssh/new-sockets/%r@%h-%p" controlpath: "~/.ssh/new-sockets/%r@%h-%p"
@ -364,6 +378,7 @@
host: "options.example.com" host: "options.example.com"
proxyjump: "new-jumphost.example.com" proxyjump: "new-jumphost.example.com"
forward_agent: false forward_agent: false
add_keys_to_agent: false
host_key_algorithms: "+ssh-ed25519" host_key_algorithms: "+ssh-ed25519"
controlmaster: no controlmaster: no
controlpath: "~/.ssh/new-sockets/%r@%h-%p" controlpath: "~/.ssh/new-sockets/%r@%h-%p"
@ -390,6 +405,7 @@
that: that:
- "'proxyjump new-jumphost.example.com' in slurp_ssh_config['content'] | b64decode" - "'proxyjump new-jumphost.example.com' in slurp_ssh_config['content'] | b64decode"
- "'forwardagent no' in slurp_ssh_config['content'] | b64decode" - "'forwardagent no' in slurp_ssh_config['content'] | b64decode"
- "'addkeystoagent no' in slurp_ssh_config['content'] | b64decode"
- "'hostkeyalgorithms +ssh-ed25519' in slurp_ssh_config['content'] | b64decode" - "'hostkeyalgorithms +ssh-ed25519' in slurp_ssh_config['content'] | b64decode"
- "'controlmaster no' in slurp_ssh_config['content'] | b64decode" - "'controlmaster no' in slurp_ssh_config['content'] | b64decode"
- "'controlpath ~/.ssh/new-sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode" - "'controlpath ~/.ssh/new-sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode"
@ -421,6 +437,7 @@
that: that:
- "'proxyjump new-jumphost.example.com' in slurp_ssh_config['content'] | b64decode" - "'proxyjump new-jumphost.example.com' in slurp_ssh_config['content'] | b64decode"
- "'forwardagent no' in slurp_ssh_config['content'] | b64decode" - "'forwardagent no' in slurp_ssh_config['content'] | b64decode"
- "'addkeystoagent no' in slurp_ssh_config['content'] | b64decode"
- "'hostkeyalgorithms +ssh-ed25519' in slurp_ssh_config['content'] | b64decode" - "'hostkeyalgorithms +ssh-ed25519' in slurp_ssh_config['content'] | b64decode"
- "'controlmaster no' in slurp_ssh_config['content'] | b64decode" - "'controlmaster no' in slurp_ssh_config['content'] | b64decode"
- "'controlpath ~/.ssh/new-sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode" - "'controlpath ~/.ssh/new-sockets/%r@%h-%p' in slurp_ssh_config['content'] | b64decode"
@ -470,6 +487,7 @@
that: that:
- "'proxyjump new-jumphost.example.com' not in slurp_ssh_config['content'] | b64decode" - "'proxyjump new-jumphost.example.com' not in slurp_ssh_config['content'] | b64decode"
- "'forwardagent no' not in slurp_ssh_config['content'] | b64decode" - "'forwardagent no' not in slurp_ssh_config['content'] | b64decode"
- "'addkeystoagent no' not in slurp_ssh_config['content'] | b64decode"
- "'hostkeyalgorithms +ssh-ed25519' not in slurp_ssh_config['content'] | b64decode" - "'hostkeyalgorithms +ssh-ed25519' not in slurp_ssh_config['content'] | b64decode"
- "'controlmaster auto' not in slurp_ssh_config['content'] | b64decode" - "'controlmaster auto' not in slurp_ssh_config['content'] | b64decode"
- "'controlpath ~/.ssh/sockets/%r@%h-%p' not in slurp_ssh_config['content'] | b64decode" - "'controlpath ~/.ssh/sockets/%r@%h-%p' not in slurp_ssh_config['content'] | b64decode"