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
Host
ist 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 host
Schlü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