# ssh

ssh.variant  
By default, Git determines the command line arguments to use based on the basename of the configured SSH command (configured using the environment variable `GIT_SSH` or `GIT_SSH_COMMAND` or the config setting `core.sshCommand`). If the basename is unrecognized, Git will attempt to detect support of OpenSSH options by first invoking the configured SSH command with the `-G` (print configuration) option and will subsequently use OpenSSH options (if that is successful) or no options besides the host and remote command (if it fails).

The config variable `ssh.variant` can be set to override this detection. Valid values are `ssh` (to use OpenSSH options), `plink`, `putty`, `tortoiseplink`, `simple` (no options except the host and remote command). The default auto-detection can be explicitly requested using the value `auto`. Any other value is treated as `ssh`. This setting can also be overridden via the environment variable `GIT_SSH_VARIANT`.

The current command-line parameters used for each variant are as follows:

--

- `ssh` - \[-p port\] \[-4\] \[-6\] \[-o option\] \[username@\]host command

<!-- -->

- `simple` - \[username@\]host command

<!-- -->

- `plink` or `putty` - \[-P port\] \[-4\] \[-6\] \[username@\]host command

<!-- -->

- `tortoiseplink` - \[-P port\] \[-4\] \[-6\] -batch \[username@\]host command

--\
Except for the `simple` variant, command-line parameters are likely to change as git gains new features.