SSH in Ubuntu VM aus der Ferne

10

Ich habe nicht viel Erfahrung mit Netzwerken oder Linux, aber ich versuche, von außerhalb meines Heimnetzwerks in eine virtuelle Ubuntu-Maschine zu ssh. Die virtuelle Ubuntu-Maschine (VirtualBox) wird auf einem Debian-Desktop ausgeführt. Ich habe einige Nachforschungen angestellt und festgestellt, dass ich Port 22 vom Router an die virtuelle Maschine weiterleiten musste.

  • Ich habe die Netzwerkeinstellung auf der VM in Bridge geändert.
  • Ich leite den Port an die VM weiter.
  • Ich habe überprüft ( http://www.yougetsignal.com/ ), um den Port als offen anzuzeigen.

Aber wenn ich versuche, eine Verbindung herzustellen, funktioniert es immer noch nicht. ssh Benutzername @ - Verbindung abgelehnt

Muss ich in der virtuellen Maschine etwas tun, um eingehende Verbindungen zuzulassen? Oder einen Port weiterleiten?

Gibt es irgendetwas, was ich falsch mache, jede Hilfe wäre sehr dankbar !!

user1354275
quelle
Wie ist die VM mit dem Host vernetzt? Wenn es hinter einem NAT steht (Standard bei virtueller Box). Es würde nicht funktionieren, aber eine überbrückte Verbindung sollte funktionieren, vorausgesetzt, Sie haben die Ports korrekt weitergeleitet.
Matt Mootz
Sie verwenden ssh Benutzername @ Router-IP-Adresse richtig?
cprofitt
1
ja Benutzername @ öffentliche-IP-Adresse ist das richtig?
user1354275
Ubuntu ist standardmäßig mit einem OpenSSH- Client ausgestattet , mit dem Sie eine Verbindung zu einem anderen Computer herstellen können, auf dem der SSH-Server ausgeführt wird. Um eine Verbindung zu Ubuntu herzustellen , müssen Sie den OpenSSH- Server ( sudo apt-get install openssh-server ) auf den Zielcomputer laden .
David6

Antworten:

15

Standardmäßig arbeitet VirtualBox im "NAT" -Modus, dh es baut ein "virtuelles" Netzwerk auf und übersetzt Netzwerkzugriffe von der VM so, dass sie nach außen von Ihrem tatsächlichen Computer stammen.

VirtualBox lässt die VM glauben, mit einem Netzwerk verbunden zu sein, aber in Wirklichkeit stellt VirtualBox Netzwerkdienste bereit, einschließlich eines Mini-DHCP-Servers. Anschließend führt VirtualBox Netzwerkzugriffe "im Namen" der VM durch, sodass sie nur als eine andere Anwendung angezeigt wird, die auf Ihrem PC ausgeführt wird.

Dies bedeutet jedoch, dass die Außenwelt nicht wirklich über die VM Bescheid weiß und nicht direkt darauf zugreifen kann.

Ich denke, die Portumleitung, die Sie durchgeführt haben, war von Ihrem Heimrouter zu Ihrem PC, nicht zur VM. Möglicherweise fehlt Ihnen eine Konfiguration auf der VirtualBox-Seite. Entschuldigung, wenn Sie dies bereits getan haben, aber Ihre Frage war nicht klar.

Grundsätzlich müssen Sie die Netzwerkkonfiguration der VM ändern und auf "Bridged" setzen. Dadurch wird eine virtuelle Schnittstelle auf Ihrem PC erstellt und die VM verwendet diese, um auf die Außenwelt zuzugreifen. Alles, was in diese Schnittstelle gelangt oder zu dieser gelangt, wird an die VM weitergeleitet. Somit wird die VM als nur ein weiterer Computer in dem Netzwerk angezeigt, mit dem Ihr PC verbunden ist (sie hat sogar eine eigene MAC-Adresse!).

Abhängig von der Konfiguration Ihres Netzwerks erhält die VM dann möglicherweise eine DHCP-Adresse wie jeder andere an Ihren Router angeschlossene PC, oder Sie müssen möglicherweise eine statische IP-Adresse dafür konfigurieren. Dies hängt davon ab, wie Ihr Netzwerk eingerichtet ist.

Sobald die VM eine "echte" Adresse hat, können Sie auf Ihrem Router den Anweisungen folgen, die Sie gefunden haben, um Port 22 an die IP-Adresse der VM weiterzuleiten. Dies sollte so funktionieren, wie Sie es erwarten.

Wenn nicht:

  • Sehen Sie sich die Firewall-Konfiguration Ihrer VM an (iptables -L -n). Blockiert es etwas?
  • Richten Sie einen anderen Computer in Ihrem lokalen Netzwerk ein und versuchen Sie, SSH an die IP-Adresse der VM zu senden. Wenn Sie können, müssen Sie die Weiterleitungskonfiguration in Ihrem Router überprüfen. Wenn dies nicht möglich ist, müssen Sie die SSH- und Firewall-Konfiguration der VM erneut überprüfen.
Roadmr
quelle
Hallo Roadmr, ich habe die Netzwerkeinstellung auf Bridge geändert und den Port an die VM weitergeleitet, da diese über eine eigene IP verfügt und der Router sie finden konnte. Ich habe eine statische IP von der ISP. Funktioniert aber immer noch nicht
user1354275
1

Soweit ich das beurteilen kann, liegt Ihr Problem in Ihrem Server-Computernetzwerk, denn sobald Sie das VM-Netzwerk für den Bridge-Modus eingerichtet haben, können Sie loslegen (überprüfen Sie dies ssh <your.vm.ip.number>in Ihrer Server-Befehlszeile - nicht in VM).

Ihr Server befindet sich hinter einem Router, genau wie ein VM, der NAT auf Ihrem Computer verwendet.

Sie müssen sich an Ihren Servernetzwerkadministrator wenden, damit er die lokale IP-Adresse Ihrer VM an einen Port / einen Bereich von Ports weiterleiten kann (stellen Sie sicher, dass Ihre VM eine statische IP-Adresse hat).

Sie können dies selbst tun, wenn Sie die Berechtigung auf Ihrem Server-Gateway hatten, dies zu tun.

ein bisschen Visualisierung:

Internet
     '---ROUTER (SERVER1 and SERVER2 use NAT on this router)
            |   (vm1, vm2, vm3, vm4, vm5 need to be forwarded on this router)
            | 
            '--- SERVER1 (vm1, vm2, vm3 use Bridge)
            |       '---vm1
            |       '---vm2
            |       '---vm3
            '--- SERVER1 (vm4, vm5 use Bridge)
            |       '---vm4
            |       '---vm5
apisKod
quelle