diff options
author | Thomas Stringer <git@trstringer.com> | 2021-01-11 16:49:24 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-11 16:49:24 -0500 |
commit | 4f62ae8d01e8caca9039af067280ca2adad6ab6d (patch) | |
tree | d64a6046fadcaaf3fb48c6b1658445a8fb9edacc | |
parent | 88581e540728035c74af6173824e2cc517d13391 (diff) | |
download | vyos-cloud-init-4f62ae8d01e8caca9039af067280ca2adad6ab6d.tar.gz vyos-cloud-init-4f62ae8d01e8caca9039af067280ca2adad6ab6d.zip |
Fix regression with handling of IMDS ssh keys (#760)
With the changes for SSH public keys to be retrieved from IMDS as a
first option, when a key is passed through not in the raw SSH public key
format it causes an issue and the key is not added to the user's
authorized_keys file.
This PR will temporarily disable this behavior until a permanent fix is
put in place.
-rwxr-xr-x | cloudinit/sources/DataSourceAzure.py | 8 | ||||
-rw-r--r-- | tests/unittests/test_datasource/test_azure.py | 4 |
2 files changed, 11 insertions, 1 deletions
diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py index 8a0bf91d..090dd66b 100755 --- a/cloudinit/sources/DataSourceAzure.py +++ b/cloudinit/sources/DataSourceAzure.py @@ -651,6 +651,10 @@ class DataSourceAzure(sources.DataSource): LOG.debug('Retrieving public SSH keys') ssh_keys = [] try: + raise KeyError( + "Not using public SSH keys from IMDS" + ) + # pylint:disable=unreachable ssh_keys = [ public_key['keyData'] for public_key @@ -1272,6 +1276,10 @@ class DataSourceAzure(sources.DataSource): pubkey_info = None try: + raise KeyError( + "Not using public SSH keys from IMDS" + ) + # pylint:disable=unreachable public_keys = self.metadata['imds']['compute']['publicKeys'] LOG.debug( 'Successfully retrieved %s key(s) from IMDS', diff --git a/tests/unittests/test_datasource/test_azure.py b/tests/unittests/test_datasource/test_azure.py index d64b538e..dc615309 100644 --- a/tests/unittests/test_datasource/test_azure.py +++ b/tests/unittests/test_datasource/test_azure.py @@ -1797,7 +1797,9 @@ scbus-1 on xpt0 bus 0 dsrc.get_data() dsrc.setup(True) ssh_keys = dsrc.get_public_ssh_keys() - self.assertEqual(ssh_keys, ['key1']) + # Temporarily alter this test so that SSH public keys + # from IMDS are *not* going to be in use to fix a regression. + self.assertEqual(ssh_keys, []) self.assertEqual(m_parse_certificates.call_count, 0) @mock.patch(MOCKPATH + 'get_metadata_from_imds') |