Les remplacements spécifiques à l'hôte OpenSSH ~ / .ssh / config ne fonctionnent pas

16

J'ai essayé de configurer mon ~/.ssh/configfichier à l'aide de ce guide. Cependant, la substitution d'utilisateur spécifique à l'hôte n'a aucun effet et ssh essaie de se connecter en utilisant le nom d'utilisateur global au lieu de celui spécifique à l'hôte. Ma configuration ssh est configurée comme ceci:

$ cat ~/.ssh/config
User my_global_username

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

J'ai également essayé de mettre le nom d'utilisateur global sous une Host *entrée en vain. La version et la version d'OpenSSH que j'utilise sont OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013 `.

andyn
la source

Réponses:

29

Il n'y a pas de valeur "globale" dans .ssh/config. Si vous voulez avoir une valeur par défaut, vous devez la mettre dans une Host *section:

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Host *
    User my_global_username

Notez l'ordre: le premier match gagne!

grue
la source
2
Quelques questions de suivi: 1) Le comportement a-t-il changé récemment? Le guide sur le site Web lié apparaît clairement Host *en haut.
andyn
2) Le premier match l'emporte, mais apparemment uniquement pour les valeurs qu'il définit explicitement. Est-ce documenté quelque part? Man ssh_config n'affiche rien de lié dans les sections Host ou PATTERNS.
andyn
6
La première phrase du deuxième paragraphe de ssh_config (5) dit: "Pour chaque paramètre, la première valeur obtenue sera utilisée." Je ne sais pas si cela a changé récemment, mais j'avais tout le temps "Host *" en bas.
cran