Show More
@@ -122,7 +122,7 b' def _try_passwordless_paramiko(server, keyfile):' | |||
|
122 | 122 | return True |
|
123 | 123 | |
|
124 | 124 | |
|
125 | def tunnel_connection(socket, addr, server, keyfile=None, password=None, paramiko=None): | |
|
125 | def tunnel_connection(socket, addr, server, keyfile=None, password=None, paramiko=None, timeout=60): | |
|
126 | 126 | """Connect a socket to an address via an ssh tunnel. |
|
127 | 127 | |
|
128 | 128 | This is a wrapper for socket.connect(addr), when addr is not accessible |
@@ -131,12 +131,12 b' def tunnel_connection(socket, addr, server, keyfile=None, password=None, paramik' | |||
|
131 | 131 | selected local port of the tunnel. |
|
132 | 132 | |
|
133 | 133 | """ |
|
134 | new_url, tunnel = open_tunnel(addr, server, keyfile=keyfile, password=password, paramiko=paramiko) | |
|
134 | new_url, tunnel = open_tunnel(addr, server, keyfile=keyfile, password=password, paramiko=paramiko, timeout=timeout) | |
|
135 | 135 | socket.connect(new_url) |
|
136 | 136 | return tunnel |
|
137 | 137 | |
|
138 | 138 | |
|
139 | def open_tunnel(addr, server, keyfile=None, password=None, paramiko=None): | |
|
139 | def open_tunnel(addr, server, keyfile=None, password=None, paramiko=None, timeout=60): | |
|
140 | 140 | """Open a tunneled connection from a 0MQ url. |
|
141 | 141 | |
|
142 | 142 | For use inside tunnel_connection. |
@@ -157,10 +157,11 b' def open_tunnel(addr, server, keyfile=None, password=None, paramiko=None):' | |||
|
157 | 157 | tunnelf = paramiko_tunnel |
|
158 | 158 | else: |
|
159 | 159 | tunnelf = openssh_tunnel |
|
160 | tunnel = tunnelf(lport, rport, server, remoteip=ip, keyfile=keyfile, password=password) | |
|
160 | ||
|
161 | tunnel = tunnelf(lport, rport, server, remoteip=ip, keyfile=keyfile, password=password, timeout=timeout) | |
|
161 | 162 | return 'tcp://127.0.0.1:%i'%lport, tunnel |
|
162 | 163 | |
|
163 |
def openssh_tunnel(lport, rport, server, remoteip='127.0.0.1', keyfile=None, password=None, timeout= |
|
|
164 | def openssh_tunnel(lport, rport, server, remoteip='127.0.0.1', keyfile=None, password=None, timeout=60): | |
|
164 | 165 | """Create an ssh tunnel using command-line ssh that connects port lport |
|
165 | 166 | on this machine to localhost:rport on server. The tunnel |
|
166 | 167 | will automatically close when not in use, remaining open |
@@ -192,7 +193,9 b" def openssh_tunnel(lport, rport, server, remoteip='127.0.0.1', keyfile=None, pas" | |||
|
192 | 193 | password : str; |
|
193 | 194 | Your ssh password to the ssh server. Note that if this is left None, |
|
194 | 195 | you will be prompted for it if passwordless key based login is unavailable. |
|
195 | ||
|
196 | timeout : int [default: 60] | |
|
197 | The time (in seconds) after which no activity will result in the tunnel | |
|
198 | closing. This prevents orphaned tunnels from running forever. | |
|
196 | 199 | """ |
|
197 | 200 | if pexpect is None: |
|
198 | 201 | raise ImportError("pexpect unavailable, use paramiko_tunnel") |
@@ -236,7 +239,7 b' def _split_server(server):' | |||
|
236 | 239 | port = 22 |
|
237 | 240 | return username, server, port |
|
238 | 241 | |
|
239 |
def paramiko_tunnel(lport, rport, server, remoteip='127.0.0.1', keyfile=None, password=None, timeout= |
|
|
242 | def paramiko_tunnel(lport, rport, server, remoteip='127.0.0.1', keyfile=None, password=None, timeout=60): | |
|
240 | 243 | """launch a tunner with paramiko in a subprocess. This should only be used |
|
241 | 244 | when shell ssh is unavailable (e.g. Windows). |
|
242 | 245 | |
@@ -271,6 +274,9 b" def paramiko_tunnel(lport, rport, server, remoteip='127.0.0.1', keyfile=None, pa" | |||
|
271 | 274 | password : str; |
|
272 | 275 | Your ssh password to the ssh server. Note that if this is left None, |
|
273 | 276 | you will be prompted for it if passwordless key based login is unavailable. |
|
277 | timeout : int [default: 60] | |
|
278 | The time (in seconds) after which no activity will result in the tunnel | |
|
279 | closing. This prevents orphaned tunnels from running forever. | |
|
274 | 280 | |
|
275 | 281 | """ |
|
276 | 282 | if paramiko is None: |
General Comments 0
You need to be logged in to leave comments.
Login now