the ssh shared module will try to use keys if the password is not supplied
The current ssh shared module forces only password based authentication. This change will allow the ssh module to use keys if a password is not provided.
This commit is contained in:
parent
5d1a2eac3e
commit
27cd7668c1
1 changed files with 7 additions and 2 deletions
|
@ -91,12 +91,17 @@ class Ssh(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.client = None
|
self.client = None
|
||||||
|
|
||||||
def open(self, host, port=22, username=None, password=None, timeout=10):
|
def open(self, host, port=22, username=None, password=None,
|
||||||
|
timeout=10, key_filename=None):
|
||||||
|
|
||||||
ssh = paramiko.SSHClient()
|
ssh = paramiko.SSHClient()
|
||||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
|
||||||
|
use_keys = password is None
|
||||||
|
|
||||||
ssh.connect(host, port=port, username=username, password=password,
|
ssh.connect(host, port=port, username=username, password=password,
|
||||||
timeout=timeout, allow_agent=False, look_for_keys=False)
|
timeout=timeout, allow_agent=use_keys, look_for_keys=use_keys,
|
||||||
|
key_filename=key_filename)
|
||||||
|
|
||||||
self.client = ssh
|
self.client = ssh
|
||||||
return self.on_open()
|
return self.on_open()
|
||||||
|
|
Loading…
Reference in a new issue