umask 0177
usage () {
- printf 'Usage: %s [-h|-?|-f|-n|-s|-x] [-i [identity_file]] [-p port] [-F alternative ssh_config file] [-t target_path] [[-o <ssh -o options>] ...] [user@]hostname\n' "$0" >&2
+ printf 'Usage: %s [-h|-?|-f|-n|-s|-x] [-i [identity_file]] [-t target_path] [-F ssh_config] [[-o ssh_option] ...] [-p port] [user@]hostname\n' "$0" >&2
printf '\t-f: force mode -- copy keys without trying to check if they are already installed\n' >&2
printf '\t-n: dry run -- no keys are actually copied\n' >&2
printf '\t-s: use sftp -- use sftp instead of executing remote-commands. Can be useful if the remote only allows sftp\n' >&2
.Op Fl s
.Op Fl x
.Op Fl i Op Ar identity_file
-.Op Fl p Ar port
-.Op Fl o Ar ssh_option
.Op Fl t Ar target_path
+.Op Fl F Ar ssh_config
+.Op Bo Fl o Ar ssh_option Bc ...
+.Op Fl p Ar port
.Op Ar user Ns @ Ns
.Ar hostname
.Nm
.It Fl t Ar target_path
the path on the target system where the keys should be added
(defaults to ".ssh/authorized_keys")
-.It Fl p Ar port , Fl o Ar ssh_option
-These two options are simply passed through untouched, along with their
-argument, to allow one to set the port or other
-.Xr ssh 1
-options, respectively.
+.It Fl p Ar port
+Specifies the port to connect to on the remote host.
+.It Fl F Ar ssh_config , Fl o Ar ssh_option
+These options are simply passed through untouched (with their argument)
+to ssh/sftp,
+allowing one to set an alternative config file,
+or other options, respectively.
.Pp
Rather than specifying these as command line options,
it is often better to use (per-host) settings in