fix modules and 2.6 compatibility
diff --git a/wally/ssh_utils.py b/wally/ssh_utils.py
index 7085be4..7af985d 100644
--- a/wally/ssh_utils.py
+++ b/wally/ssh_utils.py
@@ -88,17 +88,20 @@
     sio.close()
 
 
-def ssh_connect(creds, conn_timeout=60):
+def ssh_connect(creds, conn_timeout=60, reuse_conn=None):
     if creds == 'local':
         return Local()
 
     tcp_timeout = 15
     banner_timeout = 30
 
-    ssh = paramiko.SSHClient()
-    ssh.load_host_keys('/dev/null')
-    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-    ssh.known_hosts = None
+    if reuse_conn is None:
+        ssh = paramiko.SSHClient()
+        ssh.load_host_keys('/dev/null')
+        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+        ssh.known_hosts = None
+    else:
+        ssh = reuse_conn
 
     etime = time.time() + conn_timeout
 
@@ -344,6 +347,15 @@
     raise ValueError("Can't parse {0!r} as ssh uri value".format(uri))
 
 
+def reconnect(conn, uri, **params):
+    if uri == 'local':
+        return conn
+
+    creds = parse_ssh_uri(uri)
+    creds.port = int(creds.port)
+    return ssh_connect(creds, reuse_conn=conn, **params)
+
+
 def connect(uri, **params):
     if uri == 'local':
         return Local()