aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbnewbold <bnewbold@robocracy.org>2016-05-28 00:07:57 -0400
committerbnewbold <bnewbold@robocracy.org>2016-05-28 00:07:57 -0400
commita7b4e46f76ec70f71a189a1f3fbbd30370d82b4f (patch)
treec5130f82bd300d2f81c19ad5c6652cfce2c3d812
parentf01a8c7160a676153a0e1ffcdc1654d2a0c6a2dd (diff)
downloaducp-a7b4e46f76ec70f71a189a1f3fbbd30370d82b4f.tar.gz
ucp-a7b4e46f76ec70f71a189a1f3fbbd30370d82b4f.zip
doc: notes about mosh SSH alias host/ip handling
-rw-r--r--doc/ssh_aliases_host_ip.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/doc/ssh_aliases_host_ip.txt b/doc/ssh_aliases_host_ip.txt
new file mode 100644
index 0000000..e32e6a5
--- /dev/null
+++ b/doc/ssh_aliases_host_ip.txt
@@ -0,0 +1,38 @@
+
+An important feature for ucp is to be able to use the same hostnames as SSH
+(and thus scp). SSH allows hostname aliases defined in ~/.ssh/config, which
+will resolve differently from other hostnames, so this is non-trivial. It's
+also possible that the SSH connection is bounching through NAT or intermediate
+SSH hops along the way, because the internet is broken, so it's even more
+non-trivial.
+
+One solution is to have users add identical aliases in /etc/hosts instead of
+~/.ssh/config. Meh.
+
+Another solution ("remote-report") would be to have the remote server return
+the IP address which it has opened the uTP (UDP) socket on. The problem with
+this is that the remote server might be behind NAT, in which case it's
+perceived listening IP address would not be a legit globally routable IP.
+
+Another solution ("local-resolve") is to punt and force folks to only use
+globally-resolvable hostnames or numeric IP addresses on the command line.
+
+Another solution ("proxy-command") is to do a weird tangled heirarchy thing
+where SSH uses the ProxyCommand option to re-call the ucp executable itself
+with the "full" hostname and port specified as additional arguments; ucp would
+know what it needs to know internally, and re-call SSH without these options to
+create the actual connection (?).
+
+A great solution would be if there was a command for resolving SSH hostnames
+(returning a "real" hostname), but I don't think such a thing exists.
+
+A "manual-fallback" would be to allow the user to specify all the connect() and
+bind() IP addresses and ports with command line flags.
+
+scp doesn't have this problem because it's just using the SSH connection.
+
+mosh is increasingly complicated and as of Spring 2016 allows several of the
+above solutions with command line args.
+
+The current proposed solution is to default to "remote-report" and have a flag
+to the client command to use "local-resolve" instead.