Der Versuch, SSH zu lokalen VM Ubuntu mit Putty


145

Ich habe einen VM von Ubuntu-Server eingerichtet, OpenSSH installiert und versuche nun, eine Verbindung mit Putty herzustellen. In Putty habe ich unter "Hostname" "Ubuntu" eingetragen, da ich dachte, dass dies der Name ist, als ich die VM einrichtete. Ich erhalte jedoch nur die Fehlermeldung: "Connection Timed Out".

Ich habe auch versucht, "127.0.0.1" in den Hostnamen von Putty einzufügen und bekomme nur "Connection Refused". Beachten Sie, dass ich die Portweiterleitung für SSH und HTTP in Oracle VM durchgeführt habe, sodass ich nicht weiß, wie ich sie zum Laufen bringen soll.


FWIW bridged / host hat nur bei mir nicht funktioniert, aber ich konnte es umgehen, indem ich im Wesentlichen nur SSH "out" machte (scp kann schließlich in beide Richtungen gehen), sodass ich keinen SSH-Zugang benötigte innerhalb des Gastes.
Rogerdpack

Antworten:


183

VirtualBox erstellt ein privates Netzwerk (10.0.2.x), das über NAT mit Ihrem Host-Netzwerk verbunden wird . (Sofern nicht anders konfiguriert.)

Dies bedeutet, dass Sie vom Host-Netzwerk aus nicht direkt auf einen Host des privaten Netzwerks zugreifen können. Dazu benötigen Sie eine Portweiterleitung. In den Netzwerkeinstellungen Ihrer VM können Sie beispielsweise VirtualBox so konfigurieren, dass Port 22 auf 127.0.1.1 (eine Loopback- Adresse Ihres Hosts) geöffnet und Datenverkehr an Port 22 von 10.0.2.1 (die interne Adresse Ihrer VM) weitergeleitet wird.

Auf diese Weise können Sie putty auf Port 22 von 127.0.1.1 verweisen und VirtualBox leitet diese Verbindung zu Ihrer VM um, wo der ssh-Daemon darauf antwortet und Sie sich anmelden können.


20
Danke, das hat bei mir funktioniert. Von Cygwin aus kann ich jetzt ssh username@127.0.1.1und bin dabei. Das Panel, das Sie benötigen, ist Einstellungen-> Netzwerk-> Portweiterleitung, und meines
user7543

38
Dies funktioniert NICHT, wenn auf Ihrem Host bereits ssh ausgeführt wird, da sich die Ports überschneiden. Leiten Sie Port 127.0.1.1:2222 auf 10.0.2.X: 22 um und führen Sie dann 'ssh 127.0.1.1 -p 2222' von Ihrem Host 'aus
dzlatkov

8
Stellen Sie außerdem sicher, dass Sie openssh-server auf dem Client-Betriebssystem installiert haben. sudo apt-get installieren openssh-server
Illuminati

17
Hatte gerade dieses Problem selbst - danke für die Erklärung. Ich bin im Grunde genommen dem gefolgt, was du gesagt hast. Ich ging zu Einstellungen und meine Verbindung zeigte "NAT". Ich habe unten auf dem Bildschirm auf die Option "Portweiterleitung" geklickt. Ich gab ihm den Namen 'PuTTY-Port-FWD', Protokoll TCP, Host-IP 127.0.0.1 Host-Port 2222 Gast-IP 10.0.2.15 Gast-Port 22. Dann startete ich PuTTY und stellte es auf 127.0.0.1 Port 2222 ein und verband es mit mein OpenSUSE vm. Danke Jungs, hoffe das hilft irgendwem in Zukunft ;-)
BubbleMonster

3
Dies funktionierte für mich, obwohl ich VirtualBox anweisen musste, Port 2222 auf 127.0.0.1 zu öffnen. Dann konnte ich mich mitssh -p 2222 user@127.0.0.1
mchen.ja 25.01.17

44

Ich wollte Putty verwenden, um eine Verbindung zu meinem Ubuntu über die virtuelle Box herzustellen (Komfortgründen ist der VB einfach komisch. Ich kann nur arbeiten, wenn er sich auf einem richtigen Terminal befindet). Sowieso,

  1. Stellen Sie sicher, dass der ssh-Client auf Ihrem Linux installiert ist. Wenn nicht, installieren Sie es sudo apt install ssh.
  2. Schalten Sie das Betriebssystem aus.
  3. Gehen Sie nun auf Ihrer VB Settings -> Network ->auf Adapter 1Auswählen Host-only adapter-> Klicken OK.
  4. Starten Sie jetzt Ihr Betriebssystem. Run ifconfig; jetzt ist die inet-adresse deine ip.
  5. Verwenden Sie dies und führen Sie es auf Ihrem Kitt aus. Loggen Sie sich mit Ihren Zugangsdaten ein.

Der einzige Nachteil der Verwendung von Host-Only-Adaptern besteht darin, dass Ihr Gastbetriebssystem keinen Zugriff auf ein breiteres Netzwerk (z. B. das Internet) hat.

Wenn Sie für Ihre VM auch einen Internetzugang benötigen, lassen Sie Adapter 1 als NAT und aktivieren Adapter 2, der als Host-Only-Adapter konfiguriert ist. Auf diese Weise kann Ihre VM über NAT eine Verbindung zum Internet herstellen und über Host-Only eine lokale Verbindung zu Ihrem Host herstellen.


4
"bridged" setzt die IP-Adresse auf Ihre lokale Schnittstelle und überbrückt den Zugriff auf das größere Internet
Duke

2
Der Vorteil der Verwendung von zwei Schnittstellen, wie hier beschrieben, ist, dass Sie sich nicht darauf verlassen müssen, dass der lokale DHCP-Server Ihre Anforderungen akzeptiert. Die meisten DHCP-Server an öffentlichen Orten (Ariport, Flugzeuge, Hotels und sogar die meisten Unternehmensnetzwerke) bieten keine zweite IP-Adresse über denselben WLAN-Adapter an, sodass eine überbrückte VM in dieser Umgebung nicht funktioniert. Hier ist eine wirklich gute Schritt-für-Schritt-Anleitung zum Einrichten dieser speziellen Konfiguration: christophermaier.name/2010/09/01/…
Yves Dorfsman

Arbeiten wie ein Zauber, aber Sie sollten Adapter 2 auf die 3. Option setzen, damit die Leute das NAT in Ruhe lassen
user3502626

vielen Dank.
Lukas

vielen Dank. Aber wenn ich die Ubuntu-Netzwerkeinstellungen von NATauf ändere , host only adapterkann ich keine Verbindung mehr zum Internet herstellen. Irgendeine Lösung?
Lukas

19

Zunächst müssen Sie entscheiden, ob Ihre VM über eine Bridge-Verbindung oder über ein NAT mit Ihrem Host-Computer verbunden ist. Auf andere Weise müssen Sie jedoch die IP-Adresse der VM in putty eingeben, um im VM-Terminal eine Verbindung zu ip herstellen zu können Dieser Befehl zeigt Ihnen die Maschinen-IP-Adresse an (und nein, 127.0.0.1 ist nicht die Maschinen-IP-Adresse).

VM # ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:d9:16:b3 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.1 scope global eth0
       valid_lft forever preferred_lft forever

In diesem Fall wird meine IP-Adresse bis zum 10.0.2.15,

Stellen Sie zunächst sicher, dass Sie auf einer grundlegenden Ebene mit der VM kommunizieren können, öffnen Sie ein Terminalfenster auf Ihrem Host und versuchen Sie, die VM zu pingen

HOST # ping 10.0.2.15

PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 10.0.2.15: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 10.0.2.15: icmp_seq=3 ttl=64 time=0.099 ms

Wenn Sie ein Ergebnis erhalten, vergewissern Sie sich, dass auf der VM ein SSH-Dienst ausgeführt wird. Geben Sie im Terminal Ihrer VM Folgendes als root ein:

VM # netstat -lnpt | grep 22
tcp   0  0  0.0.0.0:22  0.0.0.0:*  LISTEN  2361/sshd

Dies ist ein Hinweis, da wir einen Dienst / Prozess mit PID (2361) namens sshd (OpenSSH-Daemon) haben, der Port 22 überwacht.

Sie können testen, ob der Dienst ordnungsgemäß funktioniert, indem Sie versuchen, von der VM aus ssh zu verwenden.

VM # ssh 127.0.0.1

Als nächstes müssen Sie sicherstellen, dass Sie Port 22 in Ihrer Firewall / Iptables nicht blockieren. Ich kann es nicht glauben, aber probieren Sie es trotzdem aus. Geben Sie in der VM diesen Befehl ein, um die Iptables anzuzeigen.

VM # iptables -nvL INPUT

In der Ausgabe sollte die folgende Zeile stehen:

0  0  ACCEPT  tcp  --  *  *  0.0.0.0/0  0.0.0.0/0  tcp  dpt:22  ctstate  NEW

Versuchte das, und anscheinend ist meine IP-Adresse 10.0.2.15. Ich habe versucht, das in Putty einzutragen und habe gerade wieder den connection timed outFehler bekommen. Ich habe auch versucht , den nvLBefehl , den Sie erwähnen, und eine Last von (in Ermangelung eines besseren Wortes) Zeug - Chain INPUT (policy accept......, chain FORWARD.....etc
wickywills

Ich schreibe meine Antwort mit ein paar weiteren Punkten, die Sie überprüfen können, lassen Sie es mich bitte wissen.
Rabin

2
Was ist, wenn Ping 10.0.2.15 das Zeitlimit überschreitet? Ich benutze NAT.
Dan Dascalescu


Der Einfachheit halber: iptables -A INPUT -p tcp --dport ssh -j ACCEPTErmöglicht eingehenden Datenverkehr, wenn in Ihren iptables kein tcp angezeigt wird.
Eric Hodgins

15

Meine Auflösung war ähnlich wie die von Roman T. Ich musste jedoch ein paar zusätzliche Schritte hinzufügen. In meinem Fall hatte ich Ubuntu Server 14 VM auf einem Windows 8-Desktop in der Windows 2008-Domäne. Wenn ich NAT oder Bridge ausprobierte, konnte ich auf das Internet zugreifen, aber keine Verbindung über SSH herstellen.

Wenn ich Host Only Adapter ausprobiert hätte, würde dies mir erlauben, SSH zu bearbeiten, aber ich könnte nicht auf das Internet zugreifen.

Ich habe auch Port Forwarding ausprobiert und keine Freude. Wireshark wurde geöffnet und es wurde einfach keine VM gefunden.

Meine Lösung bestand also darin, einen zweiten Netzwerkadapter hinzuzufügen.

Methode

Bei ausgeschalteter VM

  1. Klicken Sie auf Einstellungen> Netzwerk. Klicken Sie auf Adapter 1 und wählen Sie Bridged Adapter
  2. Klicken Sie auf Adapter 2 und wählen Sie Host Only Adapter
  3. Klicken Sie unter NAT-Netzwerke auf Datei> Einstellungen> Netzwerke. Wenn Sie kein NAT-Netzwerk sehen, klicken Sie auf das + -Symbol, um ein NAT-Netzwerk hinzuzufügen.
  4. Klicken Sie auf Nur-Host-Netzwerke, wenn Sie kein Nur-Host-Netzwerk sehen. Klicken Sie auf +, um ein Netzwerk hinzuzufügen

Starten Sie die VM

  1. Um den Netzwerkadapter zu sehen, müssen Sie Folgendes eingeben

    ifconfig -a
    
  2. Möglicherweise wird dem Netzwerkadapter eine Mac-Adresse, jedoch keine IP-Adresse hinzugefügt.

  3. In diesem Fall müssen Sie / etc / network / interfaces bearbeiten, um DHCP zu konfigurieren. Beispiel unten mit VI / VIM, aber Sie können einen Editor Ihrer Wahl verwenden

    sudo vi /etc/network/interfaces
    
  4. füge die Zeilen hinzu

    auto eth1
    iface eth1 inet dhcp
    
  5. Datei speichern und beenden.
  6. Versuchen Sie dann, den Netzwerkdienst mit dem folgenden Befehl neu zu starten

    sudo service networking restart
    
  7. Wenn dies fehlschlägt, starten Sie die VM neu.
  8. Geben Sie nach dem Neustart Folgendes ein, um festzustellen, ob eth1 eine IP-Adresse zugewiesen wurde

    ifconfig -a
    
  9. Wenn ja, prüfen Sie, ob Sie SSH auf der VM ausführen können

Ich hatte Ihre Lösung ausprobiert, aber der neuen Schnittstelle wurde keine IP zugewiesen. Außerdem habe ich in meiner VBox DHCP aktiviert.
Athlan

12

Die folgenden Anweisungen arbeiteten mit Ubuntu 14.04 und Oracle VirtualBox 4.3.30.

Tun Sie dies in VirtualBox:

  1. Klicken Sie mit der rechten Maustaste auf Ihre virtuelle Maschine, wählen Sie "Einstellungen" und dann "Netzwerk".

  2. Wählen Sie neben "Angeschlossen an" die Option "Nur-Host-Adapter" aus. Nebenbei bemerkt: "Bridged Adapter" funktioniert auch. Weitere Informationen zu den einzelnen Optionen finden Sie in der VirtualBox-Dokumentation.

Tun Sie dies in Ihrer virtuellen Maschine:

  1. Finden Sie Ihre Netzwerk-IP-Adresse, indem Sie ein Terminal öffnen und eingeben ifconfig. Beachten Sie die IP-Adresse, die neben eth0 unter "inet addr" angezeigt wird. Sie können Ihre IP-Adresse auch anzeigen, indem Sie auf das Netzwerksymbol in der oberen rechten Ecke Ihres Desktops klicken und dann "Verbindungsinformationen" auswählen.

  2. Installieren Sie openssh-server, indem Sie am Terminal Folgendes eingeben:

    sudo apt-get install openssh-server
    
  3. Starten Sie die virtuelle Maschine für alle Fälle neu.

Jetzt können Sie von PuTTY aus eine Verbindung mit der IP-Adresse aus Schritt 1 und Port 22 herstellen.


2

Für Ubuntu 18.04 und VirtualBox 5.2:

  1. Erstellen Sie eine Host-Netzwerkschnittstelle

    ich. Klicken Sie in Virtualbox auf File/ Host Network Manager.

    ii. Wenn Sie noch keinen Host-Netzwerkadapter haben (Standardeinstellung vboxnet0), klicken Sie auf Create.

  2. Aktivieren Sie die Host-only Adapter-Einstellungen für VM

    ich. Klicken Sie in Virtualbox mit der rechten Maustaste auf Ihre VM und wählen Sie Settings.

    ii. Klicken Networkund auswählen Adapter 2.

    iii. Klicken Sie auf Enable Network Adapter.

    iv. Unter Attached to:auswählen Host-only Adapter. Der Name des in Schritt 1 erstellten Adapters sollte angezeigt werden (Standardeinstellung vboxnet0).

  3. Konfigurieren Sie die Netzwerkeinstellungen in VM

    ich. Starten Sie Ihre VM und prüfen , welche Schnittstelle wurde hinzugefügt: ip a. Suchen Sie nach der Schnittstelle, die keine inetAdresse hat. Auf meinem war es enp0s8.

    ii. Bearbeiten /etc/netplan/01-netcfg.yaml. zB sudo vi /etc/netplan/01-netcfg.yaml.

    iii. Fügen Sie unter den Einstellungen für den ursprünglichen Adapter Konfigurationsdetails hinzu:

    enp0s8:
        addresses: [192.168.56.2/24]
        gateway4: 192.168.56.1
        dhcp4: no
    

    Dies weist Ihrer VM eine statische IP-Adresse zu, um SSH zu vereinfachen. Wenn Sie dhcpstattdessen die Adressierung übernehmen möchten , lassen Sie die Adress- und Gateway-Konfiguration weg und setzen Sie sie dhcp4auf yes.

    iv. Laden Sie die Konfigurationsdatei: sudo netplan apply.

  4. SSH in Ihre VM

    ich. Wenn Sie nicht installiert haben sshin der VM: sudo apt install ssh.

    ii. Von Ihrem Host - Rechner, SSH in die VM: ssh <username>@192.168.56.2.


Danke, habe meinen Tag gerettet!
9.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.