Hostspezifische Überschreibungen von OpenSSH ~ / .ssh / config funktionieren nicht

16

Ich habe versucht, meine ~/.ssh/configDatei mit Hilfe dieses Handbuchs einzurichten . Die hostspezifische Benutzerüberschreibung hat jedoch keine Auswirkung, und ssh versucht, eine Verbindung mit dem globalen Benutzernamen anstelle des hostspezifischen herzustellen. Meine ssh-Konfiguration ist wie folgt eingerichtet:

$ cat ~/.ssh/config
User my_global_username

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Ich habe auch versucht, den globalen Benutzernamen unter einen Host *Eintrag zu setzen, ohne Erfolg. Die OpenSSH-Version und der Build, die ich verwende, sind OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013 `.

andyn
quelle

Antworten:

29

Es gibt keinen "globalen" Wert in .ssh/config. Wenn Sie einen Standardwert haben möchten, müssen Sie ihn in einen Host *Abschnitt einfügen:

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Host *
    User my_global_username

Beachten Sie die Reihenfolge: Das erste Spiel gewinnt!

Kran
quelle
2
Ein paar weitere Fragen: 1) Hat sich das Verhalten in letzter Zeit geändert? Der Leitfaden auf der verlinkten Website zeigt deutlich Host *oben.
Andyn
2) Das erste Match gewinnt, aber anscheinend nur für die Werte, die es explizit festlegt. Ist das irgendwo dokumentiert? Man ssh_config zeigt nichts, was mit Host oder PATTERNS zu tun hat.
Andyn
6
Der erste Satz im zweiten Absatz von ssh_config (5) lautet: "Für jeden Parameter wird der erste erhaltene Wert verwendet." Ich weiß nicht, ob sich das kürzlich geändert hat, aber ich hatte die ganze Zeit "Host *" unten.
Cran