a lot of changes
diff --git a/wally/ssh_utils.py b/wally/ssh_utils.py
index 7a37c4b..7b6d593 100644
--- a/wally/ssh_utils.py
+++ b/wally/ssh_utils.py
@@ -5,6 +5,7 @@
import logging
import os.path
import getpass
+import StringIO
import threading
import subprocess
@@ -64,6 +65,15 @@
return False
+NODE_KEYS = {}
+
+
+def set_key_for_node(host_port, key):
+ sio = StringIO.StringIO(key)
+ NODE_KEYS[host_port] = paramiko.RSAKey.from_private_key(sio)
+ sio.close()
+
+
def ssh_connect(creds, conn_timeout=60):
if creds == 'local':
return Local
@@ -101,6 +111,14 @@
look_for_keys=False,
port=creds.port,
banner_timeout=c_banner_timeout)
+ elif (creds.host, creds.port) in NODE_KEYS:
+ ssh.connect(creds.host,
+ username=creds.user,
+ timeout=c_tcp_timeout,
+ pkey=NODE_KEYS[(creds.host, creds.port)],
+ look_for_keys=False,
+ port=creds.port,
+ banner_timeout=c_banner_timeout)
else:
key_file = os.path.expanduser('~/.ssh/id_rsa')
ssh.connect(creds.host,