Search code examples
sshssh-config

Tell SSH to to use special IdentityFile for special user


I need to tell SSH to use special IdentityFile for special user.

For example host specs [email protected] [email protected] should use key ~/.ssh/id_wizard

I'd like to write

User wizard
  IdentityFile ~/.ssh/id_wizard

but there is no such option in man ssh_config.


Solution

  • You should be able to use the Match directive. Match is a more generalized form of the Host directive:

    Match
    Restricts the following declarations (up to the next Host or Match keyword) to be used only when the conditions following the Match keyword are satisfied. Match conditions are specified using one or more criteria or the single token all which always matches. The available criteria keywords are: canonical, exec, host, originalhost, user, and localuser. The all criteria must appear alone or immediately after canonical. Other criteria may be combined arbitrarily. All criteria but all and canonical require an argument. Criteria may be negated by prepending an exclamation mark (‘!’).
    ...
    The other keywords' criteria must be single entries or comma-separated lists and may use the wildcard and negation operators described in the PATTERNS section. ... The user keyword matches against the target username on the remote host.

    So:

    Match user wizard
        IdentityFile ~/.ssh/id_wizard