Ich kann von zu Hause aus server A
über einen mit dem Internet verbundenen SSH-Server eine Verbindung zu einem Server bei der Arbeit () herstellen.
Ich muss einen Befehl auf einem Server in einem anderen Büro ( server C
) ausführen, auf den von nicht direkt zugegriffen werden kann server A
.
Es gibt jedoch einen Zwischenserver ( server B
), der server A
zugreifen kann und von dem aus server C
erreichbar ist.
+------+ +----------+ +----------+ +----------+
| home |---| server A |---| server B |---| server C |
+------+ +----------+ +----------+ +----------+
Ich weiß, dass ich mit SSH einen Befehl auf einem Remote-Server wie folgt ausführen kann:
ssh hostname command
Daher habe ich versucht, mehrere SSH-Befehle aneinanderzureihen
ssh server_A ssh server_B ssh server_C command
Ich erhalte jedoch eine Fehlermeldung:
ssh: Could not resolve hostname server_B: Name or service not known
Dies scheint darauf hinzudeuten, dass die DNS-Suche lokal und nicht auf dem Remote-Server erfolgt.
Notiz:
Ich habe versucht, mehrere SSH-Befehle über Hosts aneinanderzureihen, die mein lokaler DNS-Server auflösen kann. Das hat funktioniert. Das heißt, wenn ich mein DNS-Lookup-Problem lösen kann, sollte ich in der Lage sein, mein Ziel zu erreichen.
Frage:
Wie kann ich mehrere SSH-Befehle aneinanderreihen und gleichzeitig erzwingen, dass die Namenssuche nur auf dem Remote-Server erfolgt, auf dem der nächste Befehl ausgeführt werden soll?
Antwort1
Soweit ich das beurteilen kann, erfolgt die Namensauflösung auf der Fernbedienung:
- Richten Sie mein lokales Netzwerk so ein,
/etc/hosts
dass einem meiner Server in der Cloud ein Name zugewiesen wird ping server
pingt den Server an, damit die lokale DNS-Auflösung funktioniertssh server ping server
sagtping: unknown host server
ssh server ssh server
sagtssh: Could not resolve hostname server: Name or service not known
Die Namensauflösung der Befehle in den Zeichenfolgen erfolgt also nicht lokal. Wenn Sie die Adresse nicht abrufen können, liegt dies daran, dass der Remote-Host selbst den Namen nicht auflösen kann. Um sich selbst davon zu überzeugen, starten Sie eine SSH-Eingabeaufforderung auf ServerA und prüfen Sie, ob ServerB aufgelöst werden kann ( ping
oder sonst).