ssh verwendet keinen Servernamen in der Konfiguration

ssh verwendet keinen Servernamen in der Konfiguration

Ich versuche, eine Konfiguration für die Verbindung mit einem Remote-SSH-Server über den Befehl zu erstellen ssh <server short name>. Ich gebe dies ein in ~/.ssh/config:

Host <server short name> <server full name>
    Host <server full name>
    User <my username on the remote server>
    Port 22022
    ForwardAgent yes
    ForwardX11 yes

Ich kann eine Verbindung herstellen über

$ ssh <server full name>

aber es schlägt fehl mit dem Befehl

$ ssh <server short name>
ssh: Could not resolve hostname <server short name>: Name or service not known

Ich habe die Rechtschreibung mehrmals überprüft und konnte keinen Fehler finden. Irgendwelche Ideen, warum der zweite Befehl fehlschlägt?

Antwort1

Hostist keine SSH-Option; es beginnt immer ein neuer Abschnitt, unabhängig von der Einrückungsebene. Sie haben also zwei Konfigurationsabschnitte: einen leeren, der übereinstimmt, <shortname> <fullname>und einen, der nur übereinstimmt <fullname>.

Stattdessen muss die zweite Zeile lauten HostName <fullname>.

Antwort2

Sehen Sie sich dieman-Seiten

Das hostSchlüsselwort wird zum Gruppieren von Konfigurationen verwendet und kann auch zum Definieren eines Alias ​​für einen Host oder zum gleichzeitigen Konfigurieren mehrerer Hosts verwendet werden.

Stellen Sie sich folgendes Szenario vor: Bei der Arbeit haben Sie zwei Server namens dev.example.com und test.example.com, auf denen Sie dasselbe Schlüsselpaar verwenden, und ein GitHub-Konto mit einem zweiten Schlüsselpaar. Sie könnten dann die folgende Konfiguration einrichten

host *.example.com
identityfile ~/.ssh/work-key
user bob
Port 22022
ForwardAgent yes
ForwardX11 yes

host github.com
identityfile ~/.ssh/github-key

host dev
hostname dev.example.com

host test
hostname test.example.com

Und zum Herstellen einer Verbindung verwenden Sie so etwas:

ssh dev

verwandte Informationen