Sie müssen sich auf einem anderen Host im selben Netzwerksegment anmelden können. Einige der Möglichkeiten, auf den falsch konfigurierten Host zuzugreifen, erfordern root auf dem Zwischenhost. Es gibt jedoch auch eine einfache Möglichkeit, auf den Host zuzugreifen, ohne root auf dem Zwischenhost zu benötigen.
Die einfache Möglichkeit, über IPv6 auf den Host zuzugreifen
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
Die folgenden Beispielwerte in obigen Befehl müssen mit der richtigen Werte für Ihren Anwendungsfall ersetzt werden: fe80::42:ff:fe:42
, eth0
, user
, intermediate-host
, und target-server
.
Detaillierte Erklärung, wie es funktioniert
ProxyCommand
ist eine SSH-Funktion, die verwendet werden kann, wenn Sie keine direkte TCP-Verbindung zum Zielhost herstellen können. Das Argument für ProxyCommand
ist ein Befehl, dessen stdin / stdout anstelle einer TCP-Verbindung verwendet werden soll.
-W
wird verwendet, um eine einzelne Portweiterleitung zu öffnen und sie mit stdin / stdout zu verbinden. Das passt gut zusammen mit ProxyCommand
.
fe80::42:ff:fe:42%%eth0
ist die verbindungslokale Adresse des Zielhosts. Beachten Sie, dass aufgrund der ProxyCommand
Verwendung %
als Escape-Zeichen der eingegebene Befehl ssh %%
an dieser Stelle verwendet werden muss. Sie können alle verbindungslokalen Adressen im Segment finden, indem Sie ausführen ssh user@intermediate-host ping6 -nc2 ff02::1%eth0
.
Die Verwendung von verbindungslokalen IPv6-Adressen für diesen Zweck ist normalerweise die einfachste Methode, da sie auf allen modernen Systemen standardmäßig aktiviert ist und verbindungslokale Adressen weiterhin funktionieren, auch wenn IPv4- und IPv6-Stapel stark falsch konfiguriert sind.
Zurückgreifen auf IPv4
Wenn IPv6 auf dem falsch konfigurierten Host vollständig deaktiviert ist (absolut nicht empfohlen), müssen Sie möglicherweise IPv4 verwenden. Da IPv4 keine verbindungslokalen Adressen hat, wird der Zugriff von IPv6 auf den falsch konfigurierten Host mithilfe von IPv4 komplizierter und erfordert Root-Zugriff auf dem Zwischenhost.
Wenn der falsch konfigurierte Host sein Standard-Gateway weiterhin verwenden kann, können Sie von außen darauf zugreifen. Möglicherweise hat die falsch konfigurierte Netzmaske auch das Standard-Gateway beschädigt, da der Stack die Verwendung eines Gateways außerhalb des von der Netzmaske abgedeckten Präfixes verweigert hat. In diesem Fall kann der falsch konfigurierte Host nur mit 192.168.1.8 kommunizieren, da dies die einzige andere IP-Adresse im Subnetz ist, auf die dieser falsch konfigurierte Host derzeit zugreifen kann.
Wenn Sie sich unter 192.168.1.8 angemeldet haben, können Sie möglicherweise einfach von dort zu 192.168.1.9 ssh. Wenn 192.168.1.8 derzeit nicht zugewiesen ist, können Sie es vorübergehend jedem Host in dem Segment zuweisen, auf dem Sie Root-Zugriff haben.
fe80::42:ff:fe:42
ist die Adresse von ...? Ich vermute, mein Server ist falsch konfiguriert.kasperd
habe eine großartige Antwort gepostet, die detailliert genug ist, um zu erfahren, wie ich mich von der Situation in der Frage erholen kann. Diese Antwort ist die genaue Schritt-für-Schritt-Anleitung.arp -a
oderip neighbor list
als,root
um die MAC-Adresse des falsch konfigurierten Servers zu ermitteln.ssh user@link-local%dev
wo:quelle
Sie müssen eine IP-Adresse innerhalb des konfigurierten Subnetzes Ihres Ziels laden , nicht nur innerhalb des tatsächlich gewünschten Bereichs.
Wenn Sie ein Paket mit dem Subnetz 255.255.255.248 von z. B. 10.0.0.220 an 10.0.0.2 senden, überprüft 10.0.0.2 die Subnetzmaske, um herauszufinden, wie zu antworten ist. Da .220 WAAY außerhalb des Subnetzes 255.255.255.248 ist, muss .2 die Antwort stattdessen an das Standard-Gateway senden.
Wenn Sie also eine IP-Adresse in dasselbe Subnetz wie .2 laden können, z. 10.0.0.3, dann wird es funktionieren.
In Ihrem speziellen Fall hat das Subnetz 255.255.255.254 für 10.0.0.9 nur 1 zusätzliche IP-Adresse , nämlich 10.0.0.8. Wenn Sie diese IP-Adresse laden können, sollten Sie in der Lage sein, SSH auszuführen.
quelle