From 3660b04d62be7937e8bf9facf7df8a15846d6e94 Mon Sep 17 00:00:00 2001 From: Chris Church Date: Mon, 28 Mar 2016 18:33:46 -0400 Subject: [PATCH] Add trailing newline to key data for OpenSSH formatted keys. --- awx/main/tasks.py | 4 ++++ awx/main/tests/data/ssh.py | 6 ++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 381ea31623..387193b06b 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -389,6 +389,10 @@ class BaseTask(Task): if 'OPENSSH PRIVATE KEY' in data and not openssh_keys_supported: raise RuntimeError(OPENSSH_KEY_ERROR) for name, data in private_data.iteritems(): + # OpenSSH formatted keys must have a trailing newline to be + # accepted by ssh-add. + if 'OPENSSH PRIVATE KEY' in data and not data.endswith('\n'): + data += '\n' # For credentials used with ssh-add, write to a named pipe which # will be read then closed, instead of leaving the SSH key on disk. if name in ('credential', 'scm_credential', 'ad_hoc_credential') and not ssh_too_old: diff --git a/awx/main/tests/data/ssh.py b/awx/main/tests/data/ssh.py index ff5592358e..c2a9a29223 100644 --- a/awx/main/tests/data/ssh.py +++ b/awx/main/tests/data/ssh.py @@ -84,8 +84,7 @@ HPUhg3adAmIJ9z9u/VmTErbVklcKWlyZuTUkxeQ/BJmSIRUQAAAIEA3oKAzdDURjy8zxLX gBLCPdi8AxCiqQJBCsGxXCgKtZewset1XJHIN9ryfb4QSZFkSOlm/LgdeGtS8Or0GNPRYd hgnUCF0LkEsDQ7HzPZYujLrAwjumvGQH6ORp5vRh0tQb93o4e1/A2vpdSKeH7gCe/jfUSY h7dFGNoAI4cF7/0AAAAUcm9vdEBwaWxsb3cuaXhtbS5uZXQBAgMEBQYH ------END OPENSSH PRIVATE KEY----- -''' +-----END OPENSSH PRIVATE KEY-----''' TEST_OPENSSH_KEY_DATA_LOCKED = '''-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABALaWMfjc @@ -114,8 +113,7 @@ C6Oxl1Wsp3gPkK2yiuy8qcrvoEoJ25TeEhUGEAPWx2OuQJO/Lpq9aF/JJoqGwnBaXdCsi+ 5ig+ZMq5GKQtyydzyXImjlNEUH1w2prRDiGVEufANA5LSLCtqOLgDzXS62WUBjJBrQJVAM YpWz1tiZQoyv1RT3Y0O0Vwe2Z5AK3fVM0I5jWdiLrIErtcR4ULa6T56QtA52DufhKzINTR Vg9TtUBqfKIpRQikPSjm7vpY/Xnbc= ------END OPENSSH PRIVATE KEY----- -''' +-----END OPENSSH PRIVATE KEY-----''' TEST_SSH_CERT_KEY = """-----BEGIN CERTIFICATE----- MIIDNTCCAh2gAwIBAgIBATALBgkqhkiG9w0BAQswSTEWMBQGA1UEAwwNV2luZG93