diff --git a/webssh/handler.py b/webssh/handler.py index c4a082b..9b93f2b 100644 --- a/webssh/handler.py +++ b/webssh/handler.py @@ -310,10 +310,10 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler): self.lookup_hostname(hostname, port) username = self.get_value('username') password = self.get_argument('password', u'') + passphrase = self.get_argument('passphrase', u'') privatekey, filename = self.get_privatekey() if privatekey: - pkey = PrivateKey(privatekey, password, filename).get_pkey_obj() - password = None + pkey = PrivateKey(privatekey, passphrase, filename).get_pkey_obj() else: pkey = None args = (hostname, port, username, password, pkey) @@ -336,7 +336,9 @@ class IndexHandler(MixinHandler, tornado.web.RequestHandler): logging.info('Connecting to {}:{}'.format(*dst_addr)) try: - ssh.connect(*args, timeout=6) + ssh.connect( + *args, timeout=6, allow_agent=False, look_for_keys=False + ) except socket.error: raise ValueError('Unable to connect to {}:{}'.format(*dst_addr)) except paramiko.BadAuthenticationType: diff --git a/webssh/static/js/main.js b/webssh/static/js/main.js index 8b0bf73..0682eec 100644 --- a/webssh/static/js/main.js +++ b/webssh/static/js/main.js @@ -515,9 +515,9 @@ jQuery(function($){ } - function normalize_data(data) { + function clean_data(data) { var i, attr, val; - var attrs = fields.concat('privatekey'); + var attrs = fields.concat(['password', 'privatekey', 'passphrase']); for (i = 0; i < attrs.length; i++) { attr = attrs[i]; @@ -530,7 +530,7 @@ jQuery(function($){ function validate_form_data(data) { - normalize_data(data); + clean_data(data); var hostname = data.get('hostname'), port = data.get('port'), @@ -668,7 +668,7 @@ jQuery(function($){ } - function connect(hostname, port, username, password, privatekey) { + function connect(hostname, port, username, password, privatekey, passphrase) { // for console use var result, opts; @@ -686,7 +686,8 @@ jQuery(function($){ port: port, username: username, password: password, - privatekey: privatekey + privatekey: privatekey, + passphrase: passphrase }; } else { opts = hostname; diff --git a/webssh/templates/index.html b/webssh/templates/index.html index 64a8a17..8df7b4b 100644 --- a/webssh/templates/index.html +++ b/webssh/templates/index.html @@ -9,7 +9,7 @@