diff --git a/docs/ansible.netcommon.libssh_connection.rst b/docs/ansible.netcommon.libssh_connection.rst index 42a5b4628..14843cf4f 100644 --- a/docs/ansible.netcommon.libssh_connection.rst +++ b/docs/ansible.netcommon.libssh_connection.rst @@ -220,6 +220,29 @@ Parameters
TODO: write it
+ + +
+ publickey_accepted_algorithms + +
+ string +
+ + + Default:
""
+ + +
ini entries: +

[libssh_connection]
publickey_algorithms =

+
+
env:ANSIBLE_LIBSSH_PUBLICKEY_ALGORITHMS
+
var: ansible_libssh_publickey_algorithms
+ + +
List of algorithms to forward to SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPES.
+ +
diff --git a/plugins/connection/libssh.py b/plugins/connection/libssh.py index cd10a3a58..366df4763 100644 --- a/plugins/connection/libssh.py +++ b/plugins/connection/libssh.py @@ -100,6 +100,17 @@ - section: libssh_connection key: pty type: boolean + publickey_accepted_algorithms: + default: '' + description: + - List of algorithms to forward to SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPES. + type: string + env: + - name: ANSIBLE_LIBSSH_PUBLICKEY_ALGORITHMS + ini: + - {key: publickey_algorithms, section: libssh_connection} + vars: + - name: ansible_libssh_publickey_algorithms host_key_checking: description: 'Set this to "False" if you want to avoid host key checking by the underlying tools Ansible uses to connect to the host' type: boolean @@ -401,6 +412,11 @@ def _connect_uncached(self): "Please upgrade to ansible-pylibssh 1.0.0 or newer." % PYLIBSSH_VERSION ) + if self.get_option("publickey_accepted_algorithms"): + ssh_connect_kwargs["publickey_accepted_algorithms"] = self.get_option( + "publickey_accepted_algorithms" + ) + self.ssh.set_missing_host_key_policy(MyAddPolicy(self._new_stdin, self)) self.ssh.connect(