Merge remote-tracking branch 'origin/dmw'

- issue #334
issue260
David Wilson 7 years ago
commit e643d67cd5

@ -92,6 +92,12 @@ def _connect_ssh(spec):
else:
check_host_keys = 'ignore'
# #334: tilde-expand private_key_file to avoid implementation difference
# between Python and OpenSSH.
private_key_file = spec['private_key_file']
if private_key_file is not None:
private_key_file = os.path.expanduser(private_key_file)
return {
'method': 'ssh',
'kwargs': {
@ -101,7 +107,7 @@ def _connect_ssh(spec):
'password': optional_secret(spec['password']),
'port': spec['port'],
'python_path': spec['python_path'],
'identity_file': spec['private_key_file'],
'identity_file': private_key_file,
'identities_only': False,
'ssh_path': spec['ssh_executable'],
'connect_timeout': spec['ansible_ssh_timeout'],

@ -36,6 +36,17 @@ Enhancements
Fixes
^^^^^
* `#334 <https://github.com/dw/mitogen/issues/334>`_: the SSH method
tilde-expands private key paths using Ansible's logic. Previously Mitogen
passed the path unmodified to SSH, which would expand it using
:func:`os.getpwent`.
This differs from :func:`os.path.expanduser`, which prefers the ``HOME``
environment variable if it is set, causing behaviour to diverge when Ansible
was invoked using sudo without appropriate flags to cause the ``HOME``
environment variable to be reset to match the target account.
Core Library
~~~~~~~~~~~~
@ -68,6 +79,14 @@ Core Library
:meth:`mitogen.core.Broker.defer_sync` utility function is provided.
Thanks!
~~~~~~~
Mitogen would not be possible without the support of users. A huge thanks for
bug reports, features and fixes in this release contributed by
`Guy Knights <https://github.com/knightsg>`_.
v0.2.3 (2018-10-23)
-------------------

@ -1,2 +1,3 @@
- import_playbook: config.yml
- import_playbook: timeouts.yml
- import_playbook: variables.yml

@ -0,0 +1,19 @@
# issue #334: test expanduser() on key file during config generation.
- name: integration/ssh/config.yml
hosts: test-targets
connection: ssh
vars:
ansible_private_key_file: ~/fakekey
tasks:
- meta: end_play
when: not is_mitogen
- mitogen_get_stack:
register: out
- assert:
that: |
out.result[0].kwargs.identity_file == (
lookup('env', 'HOME') + '/fakekey'
)

@ -1 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkMz7vE4piReKXBNarhGhzfMr6g7capaUHllxThmtm4ndlM3kbiEFvxI9P7s17T50CycfesJf5/1bmLxACROtdMGrgBrCAAGwEy2qnCNPhqrLpd2amoLUkBcthmiaTVmU+eMMHm8ubxh0qEauXOaaVqXTGcK1bGMsufLYGr0lv5RE2AErg9jPYkh6qT0CpxGtRmfbYubFAIunP5gxHgiOQrD7Yzs2NFDqPq9rRuvRMGX/XLpDurFm9x16LTx1fDSU1aqmu88QMJtXoMyPlHCqd5x/FdZ1KorR79LB+H/cptB1/ND1geZv5OAD8ydCc3nNGi8hiyPobb6jOX68agXyX dmw@Eldil.local
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkMz7vE4piReKXBNarhGhzfMr6g7capaUHllxThmtm4ndlM3kbiEFvxI9P7s17T50CycfesJf5/1bmLxACROtdMGrgBrCAAGwEy2qnCNPhqrLpd2amoLUkBcthmiaTVmU+eMMHm8ubxh0qEauXOaaVqXTGcK1bGMsufLYGr0lv5RE2AErg9jPYkh6qT0CpxGtRmfbYubFAIunP5gxHgiOQrD7Yzs2NFDqPq9rRuvRMGX/XLpDurFm9x16LTx1fDSU1aqmu88QMJtXoMyPlHCqd5x/FdZ1KorR79LB+H/cptB1/ND1geZv5OAD8ydCc3nNGi8hiyPobb6jOX68agXyX mitogen__has_sudo_pubkey@testdata

Loading…
Cancel
Save