X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=man%2Fman1%2Fmonkeysphere-ssh-proxycommand.1;h=65edd0be528a0a41546fe7eb52669576c18f28ba;hb=d295c107d3274b180e3639196031a09e79872881;hp=5fabb91af5dce22ac09e4601549eb63bcac561d1;hpb=79e9e7214bcbd4ecf4d555a1be413532b216c2e7;p=monkeysphere.git diff --git a/man/man1/monkeysphere-ssh-proxycommand.1 b/man/man1/monkeysphere-ssh-proxycommand.1 index 5fabb91..65edd0b 100644 --- a/man/man1/monkeysphere-ssh-proxycommand.1 +++ b/man/man1/monkeysphere-ssh-proxycommand.1 @@ -6,11 +6,17 @@ monkeysphere-ssh-proxycommand \- MonkeySphere ssh ProxyCommand script .SH DESCRIPTION -\fBmonkeysphere-ssh-proxy\fP is an ssh proxy command that can be used -to trigger a monkeysphere update of the known_hosts file for the hosts -that are being connected to. It is meant to be run as an ssh -ProxyCommand. This can either be done by specifying the proxy command -on the command line: +\fBmonkeysphere-ssh-proxycommand\fP is an ssh proxy command that can be used +to trigger a monkeysphere update of the ssh known_hosts file for a +host that is being connected to with ssh. This works by updating the +known_hosts file for the host first, before an attempted connection to +the host is made. Once the known_hosts file has been updated, a TCP +connection to the host is made by exec'ing netcat(1). Regular ssh +communication is then done over this netcat TCP connection (see +ProxyCommand in ssh_config(5) for more info). + +This command is meant to be run as the ssh "ProxyCommand". This can +either be done by specifying the proxy command on the command line: .B ssh -o ProxyCommand="monkeysphere-ssh-proxycommand %h %p" ... @@ -18,17 +24,40 @@ or by adding the following line to your ~/.ssh/config script: .B ProxyCommand monkeysphere-ssh-proxycommand %h %p -The script is very simple, and can easily be incorporated into other -ProxyCommand scripts. It first tests to see if the host is in the -known_hosts file. If it's not, the CHECK_KEYSERVER variable is set to -true and "update-known_hosts" is run for the host to check for a host -key for that host. If the host is found in the known_hosts file, -CHECK_KEYSERVER is set to false and "update-known_hosts" is run to -update from the local keychain. +The script can easily be incorporated into other ProxyCommand scripts +by calling it with the "--no-connect" option, i.e.: + +.B monkeysphere-ssh-proxycommand --no-connect "$HOST" "$PORT" + +This will run everything except the final exec of netcat to make the +TCP connection to the host. In this way this command can be added to +another proxy command that does other stuff, and then makes the +connection to the host itself. + +.SH KEYSERVER CHECKING + +The proxy command has a fairly nuanced policy for when keyservers are +queried when processing a host. If the host userID is not found in +either the user's keyring or in the known_hosts file, then the +keyserver is queried for the host userID. If the host userID is found +in the user's keyring, then the keyserver is not checked. This +assumes that the keyring is kept up-to-date, in a cronjob or the like, +so that revocations are properly handled. If the host userID is not +found in the user's keyring, but the host is listed in the known_hosts +file, then the keyserver is not checked. This last policy might +change in the future, possibly by adding a deferred check, so that +hosts that go from non-monkeysphere-enabled to monkeysphere-enabled +will be properly checked. + +.SH ENVIRONMENT VARIABLES -Run the following command for more info: +All environment variables defined in monkeysphere(1) can also be used +for the proxy command, with one note: -.B less $(which monkeysphere-ssh-proxycommand) +.TP +MONKEYSPHERE_CHECK_KEYSERVER +Setting this variable (to `true' or `false') will override the policy +defined in KEYSERVER CHECKING above. .SH AUTHOR @@ -36,6 +65,9 @@ Written by Jameson Rollins .SH SEE ALSO -.BR monkeypshere (1), +.BR monkeysphere (1), +.BR monkeysphere (7), .BR ssh (1), +.BR ssh_config (5), +.BR netcat (1), .BR gpg (1)