Added support for SSH ports other than 22.

This commit is contained in:
Martin Sekera 2019-10-26 00:08:41 +02:00
parent d0c9ea6aa4
commit 2781209eb0
2 changed files with 19 additions and 2 deletions

View file

@ -1,7 +1,15 @@
{ {
// host and port of the SSH server that's going to act as the proxy
"host": "rusty.wafe.eu", "host": "rusty.wafe.eu",
"port": 10022,
// username I'm allowed to use on that server
"user": "tunnel", "user": "tunnel",
// a list of associations
"mapping": [ "mapping": [
// local port 22 will be available as port 39999 on the above server
{ {
"remote": 39999, "remote": 39999,
"local": 22 "local": 22

View file

@ -10,6 +10,16 @@ def load_cfg(path):
with open(path) as f: with open(path) as f:
return json.loads(jsmin.jsmin(f.read())) return json.loads(jsmin.jsmin(f.read()))
def safe_get(d, k, alt):
"""
Returns d[k] or alt
"""
if k in d:
return d[k]
else:
return alt
if __name__ == "__main__": if __name__ == "__main__":
# try config files in the order they are passed to us # try config files in the order they are passed to us
# first one wins # first one wins
@ -23,13 +33,12 @@ if __name__ == "__main__":
break break
except Exception as e: except Exception as e:
print("! cfg file %s failed to load (%s)" %(path, e)) print("! cfg file %s failed to load (%s)" %(path, e))
if not cfg: if not cfg:
print("! unable to load any configuration") print("! unable to load any configuration")
sys.exit(1) sys.exit(1)
command = ["/usr/bin/ssh", "-o", "ServerAliveInterval 45", "-o", "ServerAliveCountMax 2", "-o", "ExitOnForwardFailure yes", "-N"] command = ["/usr/bin/ssh", "-o", "ServerAliveInterval 45", "-o", "ServerAliveCountMax 2", "-o", "ExitOnForwardFailure yes", "-N", "-p", safe_get(cfg, "port", 22)]
for m in cfg["mapping"]: for m in cfg["mapping"]:
command.append("-R") command.append("-R")