ssh config-Platzhalter, um die Eingabe eines Benutzernamens zu vermeiden

12

Ich gehe häufig auf Openstack-Instanzen ein. Alle Instanzen befinden sich in einem dedizierten VLAN und Subnetz (10.2.xx). Alle Instanzen haben den gleichen Benutzernamen (Bob)

Ich verbinde mich so:

ssh [email protected]

oder manchmal so

ssh 10.2.x.x -l bob

Ist es möglich, meinen Laptop so zu konfigurieren, dass er automatisch den Namen Bob verwendet, wenn ich in eine VM im Subnetz 10.2.xx sshe? Ich möchte Bob nicht automatisch verwenden, wenn ich in eine Maschine in einem anderen Subnetz sshinge.

Es sieht so aus, als ob ssh config keine Platzhalter unterstützt. (Korrigieren Sie mich, wenn ich falsch liege). Ich denke, vielleicht könnte ein Alias ​​dies tun, aber ich bin mir nicht sicher, wie die Syntax lauten würde.

Spuder
quelle

Antworten:

18

Die Manpage ssh_config enthält einen Abschnitt, in PATTERNSdem beschrieben wird, wie Sie dies tun können. Sie können Wildcards von *und verwenden ?. In meinem ~/.ssh/config:

Host 172.16.*.*
   User drav

und dann bei der Ausstellung ssh -vvv 172.16.13.1:

debug1: Reading configuration data /home/drav/.ssh/config
debug1: /home/drav/.ssh/config line 4: Applying options for 172.16.*.*
debug1: /home/drav/.ssh/config line 46: Applying options for *

Beachten Sie, dass diese Übereinstimmungen kanonisch sind. Wenn also "fred.mynetwork.com" im DNS 172.16.13.1 lautet, stimmt die Ausgabe ssh fred.mynetwork.comnicht mit dem Host 172.16.*.*Eintrag überein . Sie können jedoch jederzeit einen zusätzlichen Host *.mynetwork.comEintrag hinzufügen , um dieselben Optionen anzuwenden, wenn stattdessen ein DNS-Name verwendet wird.

Drav Sloan
quelle
Ja, ein Eintrag Host 10.2*wird es schaffen
Bananguin
Ich habe festgestellt, dass 10.2. *. * Dazu führte, dass mein Schlüssel abgelehnt wurde. Durch die Änderung auf 10.2. * Wurde die Verbindung erfolgreich hergestellt.
Spuder
1
Seltsam, für mich funktioniert die xx *. *: / Zumindest gibt es deinen Kommentar wenn Leute Probleme finden!
Drav Sloan