From f5bdacc71adc3433584a0d5660d0322c1dda49f0 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Wed, 11 Nov 2020 23:17:49 +0100 Subject: [PATCH] #28: Add experimental support for sshpass --- src/rkd_harbor/tasks/deployment/ssh.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/rkd_harbor/tasks/deployment/ssh.py b/src/rkd_harbor/tasks/deployment/ssh.py index 807ed35..ed82d57 100644 --- a/src/rkd_harbor/tasks/deployment/ssh.py +++ b/src/rkd_harbor/tasks/deployment/ssh.py @@ -79,9 +79,15 @@ def _print_password(self, node: dict): def _ssh(self, node: dict) -> bool: ssh_cmd = 'ssh {}@{} -p {}'.format(node['user'], node['host'], node['port']) - if 'private_key' in node: + has_private_key = 'private_key' in node + has_password = 'password' in node + + if has_private_key: ssh_cmd += ' -i {}'.format(node['private_key']) + if not has_private_key and has_password: + ssh_cmd = 'sshpass -p "{}" '.format(node['password']) + ssh_cmd + self.sh(ssh_cmd) return True