From ec9fd625fcab299412340587cebb4a4de86bfb96 Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Sun, 17 Dec 2023 15:43:36 +0100 Subject: [PATCH] [PR #7703/5e5e1963 backport][stable-8] ssh_config: Add add_keys_to_agent option (#7735) 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 (cherry picked from commit 5e5e1963c35a4569a5032ce44e7a30d1e16b7158) Co-authored-by: mjfinney --- ...703-ssh_config_add_keys_to_agent_option.yml | 2 ++ plugins/modules/ssh_config.py | 7 +++++++ .../targets/ssh_config/tasks/options.yml | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 changelogs/fragments/7703-ssh_config_add_keys_to_agent_option.yml diff --git a/changelogs/fragments/7703-ssh_config_add_keys_to_agent_option.yml b/changelogs/fragments/7703-ssh_config_add_keys_to_agent_option.yml new file mode 100644 index 0000000000..99893a0ff3 --- /dev/null +++ b/changelogs/fragments/7703-ssh_config_add_keys_to_agent_option.yml @@ -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). diff --git a/plugins/modules/ssh_config.py b/plugins/modules/ssh_config.py index cd85f3c27b..e89e087b39 100644 --- a/plugins/modules/ssh_config.py +++ b/plugins/modules/ssh_config.py @@ -106,6 +106,11 @@ options: - Sets the C(ForwardAgent) option. type: bool 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: description: - SSH config file. @@ -262,6 +267,7 @@ class SSHConfig(object): proxyjump=self.params.get('proxyjump'), host_key_algorithms=self.params.get('host_key_algorithms'), 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'), controlpath=self.params.get('controlpath'), controlpersist=fix_bool_str(self.params.get('controlpersist')), @@ -357,6 +363,7 @@ def main(): proxycommand=dict(type='str', default=None), proxyjump=dict(type='str', default=None), forward_agent=dict(type='bool'), + add_keys_to_agent=dict(type='bool'), remote_user=dict(type='str'), ssh_config_file=dict(default=None, type='path'), state=dict(type='str', default='present', choices=['present', 'absent']), diff --git a/tests/integration/targets/ssh_config/tasks/options.yml b/tests/integration/targets/ssh_config/tasks/options.yml index c2e3273f00..f88f99081f 100644 --- a/tests/integration/targets/ssh_config/tasks/options.yml +++ b/tests/integration/targets/ssh_config/tasks/options.yml @@ -15,6 +15,7 @@ host: "options.example.com" proxycommand: "ssh jumphost.example.com -W %h:%p" forward_agent: true + add_keys_to_agent: true host_key_algorithms: "+ssh-rsa" identities_only: true controlmaster: "auto" @@ -48,6 +49,7 @@ host: "options.example.com" proxycommand: "ssh jumphost.example.com -W %h:%p" forward_agent: true + add_keys_to_agent: true host_key_algorithms: "+ssh-rsa" identities_only: true controlmaster: "auto" @@ -70,6 +72,7 @@ host: "options.example.com" proxycommand: "ssh jumphost.example.com -W %h:%p" forward_agent: true + add_keys_to_agent: true host_key_algorithms: "+ssh-rsa" identities_only: true controlmaster: "auto" @@ -96,6 +99,7 @@ that: - "'proxycommand ssh jumphost.example.com -W %h:%p' 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" - "'identitiesonly yes' in slurp_ssh_config['content'] | b64decode" - "'controlmaster auto' in slurp_ssh_config['content'] | b64decode" @@ -108,6 +112,7 @@ host: "options.example.com" proxycommand: "ssh new-jumphost.example.com -W %h:%p" forward_agent: false + add_keys_to_agent: false host_key_algorithms: "+ssh-ed25519" identities_only: false controlmaster: no @@ -132,6 +137,7 @@ host: "options.example.com" proxycommand: "ssh new-jumphost.example.com -W %h:%p" forward_agent: false + add_keys_to_agent: false host_key_algorithms: "+ssh-ed25519" identities_only: false controlmaster: no @@ -159,6 +165,7 @@ that: - "'proxycommand ssh new-jumphost.example.com -W %h:%p' 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" - "'identitiesonly no' in slurp_ssh_config['content'] | b64decode" - "'controlmaster no' in slurp_ssh_config['content'] | b64decode" @@ -191,6 +198,7 @@ that: - "'proxycommand ssh new-jumphost.example.com -W %h:%p' 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" - "'identitiesonly no' in slurp_ssh_config['content'] | b64decode" - "'controlmaster no' in slurp_ssh_config['content'] | b64decode" @@ -241,6 +249,7 @@ that: - "'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" + - "'addkeystoagent no' not in slurp_ssh_config['content'] | b64decode" - "'hostkeyalgorithms +ssh-ed25519' not in slurp_ssh_config['content'] | b64decode" - "'identitiesonly no' not in slurp_ssh_config['content'] | b64decode" - "'controlmaster auto' not in slurp_ssh_config['content'] | b64decode" @@ -261,6 +270,7 @@ host: "options.example.com" proxyjump: "jumphost.example.com" forward_agent: true + add_keys_to_agent: true host_key_algorithms: "+ssh-rsa" identities_only: true controlmaster: "auto" @@ -294,6 +304,7 @@ host: "options.example.com" proxyjump: "jumphost.example.com" forward_agent: true + add_keys_to_agent: true host_key_algorithms: "+ssh-rsa" identities_only: true controlmaster: "auto" @@ -316,6 +327,7 @@ host: "options.example.com" proxyjump: "jumphost.example.com" forward_agent: true + add_keys_to_agent: true host_key_algorithms: "+ssh-rsa" identities_only: true controlmaster: "auto" @@ -342,6 +354,7 @@ that: - "'proxyjump jumphost.example.com' 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" - "'identitiesonly yes' in slurp_ssh_config['content'] | b64decode" - "'controlmaster auto' in slurp_ssh_config['content'] | b64decode" @@ -354,6 +367,7 @@ host: "options.example.com" proxyjump: "new-jumphost.example.com" forward_agent: false + add_keys_to_agent: false host_key_algorithms: "+ssh-ed25519" identities_only: false controlmaster: no @@ -378,6 +392,7 @@ host: "options.example.com" proxyjump: "new-jumphost.example.com" forward_agent: false + add_keys_to_agent: false host_key_algorithms: "+ssh-ed25519" identities_only: false controlmaster: no @@ -405,6 +420,7 @@ that: - "'proxyjump new-jumphost.example.com' 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" - "'identitiesonly no' in slurp_ssh_config['content'] | b64decode" - "'controlmaster no' in slurp_ssh_config['content'] | b64decode" @@ -437,6 +453,7 @@ that: - "'proxyjump new-jumphost.example.com' 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" - "'identitiesonly no' in slurp_ssh_config['content'] | b64decode" - "'controlmaster no' in slurp_ssh_config['content'] | b64decode" @@ -487,6 +504,7 @@ that: - "'proxyjump new-jumphost.example.com' 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" - "'identitiesonly no' not in slurp_ssh_config['content'] | b64decode" - "'controlmaster auto' not in slurp_ssh_config['content'] | b64decode"