Fehler beim Zugriff auf das Stammverzeichnis der virtuellen Maschine über PuTTy

660
PeacockRider

Ich möchte über PuTTy auf das Stammverzeichnis meiner virtuellen vSphere ESXi 5.5 Ubuntu-Maschine zugreifen. Also lud ich die öffentliche IP der VM und versuchte SSHing über Port 22.

Dies ergab den folgenden Fehler:

PuTTy fatal-network error

Ich ging in die sshd-Konfigurationsdatei und änderte den Port von 22 auf 443 und versuchte, über Port 443 erneut zu ssh, aber ich bekam eine Terminalsitzung, in der ich nichts eingeben konnte.

Ich habe den Port in der Konfigurationsdatei erneut in Port 80 geändert und es erneut über PuTTy versucht. Diesmal bekam ich einen weiteren schwerwiegenden Fehler.

PuTTy fatal error-server closed

Hat sich hier jemand um dieses Problem gekümmert?

0
Normalerweise melden Sie sich nur als root-Benutzer von der Konsole aus an, nicht remote. In der Standardeinstellung werden Remote-Verbindungen vom Benutzer root nicht zugelassen. Bei einer Remote-Verbindung sollten Sie sich als normaler Benutzer anmelden und sudo verwenden, um alle Aktionen als root auszuführen. Herb Wolfe vor 7 Jahren 1
Ubuntu hat standardmäßig keinen root-Benutzer * Passwort *. Journeyman Geek vor 7 Jahren 0
@JourneymanGeek Es hat einen root-Benutzer. Er ist nur deaktiviert, weil er kein gültiges Passwort hat. Jedes Linux-System hat einen Root-Benutzer, wie z. B. in [Hat der Root-Account immer eine UID / GID 0?] (Https://superuser.com/a/626845/53590). Möglicherweise gibt es keine Zuordnung zu einem * Benutzernamen *, der Benutzer existiert jedoch in beiden Fällen. a CVn vor 7 Jahren 0
Ich denke, etwas reagiert auf Port 80, aber es kommuniziert nicht ordnungsgemäß mit dem SSH-Protokoll. Wenn Sie PuTTY mitteilen, dass Sie anstelle von SSH eine Verbindung mit dem Telnet-Protokoll herstellen möchten, werden Sie wahrscheinlich andere und brauchbarere Ergebnisse erhalten. (Selbst dann sind Ihre Ergebnisse wahrscheinlich nicht sehr nützlich, wenn Sie nicht mit den Befehlen des HTTP-Protokolls vertraut sind.) TOOGAM vor 7 Jahren 0

2 Antworten auf die Frage

2
a CVn

Da Sie wirklich nichts sagen, gehe ich davon aus, dass Sie eine relativ saubere Ubuntu-Installation in dieser VM haben.

Wenn Sie sagen, dass Sie die "öffentliche" IP-Adresse der VM verwenden, wird das Wasser leicht verwischt, da dies einige verschiedene Dinge bedeuten kann.

Eines ist jedoch erwähnenswert: Ihr ursprünglicher Fehler ("Netzwerkfehler: Verbindung abgelehnt", wenn Sie versuchen, eine Verbindung zu Port 22 herzustellen) sagt Ihnen, dass Sie das in der VM ausgeführte System erreichen konnten, und dass das System nichts hört auf der jeweiligen IP-Adresse und Port-Kombination, unter der Sie die IP-Adresse erreicht haben.

Ich bin mir ziemlich sicher, dass die Ubuntu-Workstation-Installationen standardmäßig keinen SSH-Server enthalten. Die Server-Varianten könnten dies jedoch sehr wohl tun.

Melden Sie sich über die VM-Konsole an und prüfen Sie, ob ein SSH-Server ausgeführt wird. Ich habe momentan kein Ubuntu-System zur Hand, aber in einem Terminal sollte dies ähnlich sein

$ service sshd status 

Es könnte als etwas bezeichnet werden wie ssh, ssh-server, openssh-serveroder etwas in diese Richtung statt sshd, aber Tabulatorvervollständigung auf ssh(Typ sshtab) sollte erhalten Sie schließen. Sie können brauchen sudodies, so zB sudo service sshd status, aber ich denke, regelmäßige Benutzer Zugang ausreichend sein sollte, einen Service - Status (Laufen / gestoppt) Bericht.

Wenn kein SSH-Server ausgeführt wird oder sogar installiert ist, wird der Grund dafür angezeigt, dass Sie die Fehlermeldung "Verbindung abgelehnt" erhalten haben. Installieren Sie einen SSH-Server wie folgt:

$ sudo apt-get -u install openssh-server 

Stellen Sie sicher, dass die Liste der zu installierenden Pakete einwandfrei ist, und bestätigen Sie. Der SSH-Server wird am Ende des Installationsvorgangs gestartet.

Schauen Sie sich nun die Datei / etc / ssh / sshd_config an. Es wird keine oder mehrere Anweisungen Portund ListenAddressAnweisungen enthalten, die IP-Adressen oder Portnummern angeben (die Portnummer ist standardmäßig 22, wenn nicht angegeben, und der Server überwacht alle IP-Adressen, wenn Sie es nicht ausdrücklich anders angeben). Dies ist die IP-Adresse und der Port, zu dem Sie eine Verbindung herstellen müssen.

Wenn keine IP-Adresse (n) angegeben ist, ip addr showwerden die Netzwerkschnittstellen in der VM und ihre jeweiligen IP-Adressen angezeigt. Dies sind die, auf die der SSH-Server wartet.

Bewegen Sie sich mit diesen Informationen, um alle erforderlichen Zauberbeschwörungen auszuführen, damit PuTTY eine Verbindung zu dieser Kombination aus IP-Adresse und Port herstellen kann. (Dies kann z. B. das Lochen eines Lochs oder das Konfigurieren der Portweiterleitung in einem NAT oder einer Firewall umfassen.)

Sobald dies geschehen ist, sollten Sie in der Lage sein, sich mit PuTTY zu verbinden und eine Terminalsitzung als unprivilegierter Benutzer auf der Ubuntu-VM zu erhalten. Von dort aus können Sie sudoIhre Privilegien nach Bedarf erhöhen, so als würden Sie vor einem physischen System sitzen.

Ich empfehle die Einrichtung Authentifizierung über öffentliche Schlüssel, und ich empfehle sehr viel gegen so dass root direkt einloggen. Wenn Sie jedoch unbedingt root direkt anmelden müssen, bearbeiten Sie / etc / ssh / sshd_config und geben Sie an PermitRootLogin yes, sudo passwd rootgeben Sie root ein gutes Kennwort an und starten Sie den SSH-Daemon neu. Wieder empfehle ich das nicht.

Mit diesem aus dem Weg, was war das Problem mit dem Anschluss an den Ports 80 und 443? Port 80 ist der Standardport für HTTP und Port 443 ist der Standardport für HTTPS. Wenn ein Webserver ausgeführt wird, ist es wahrscheinlich, dass er beide Ports überwacht. Wenn Sie eine Verbindung herstellen, werden HTTP-Anforderungen erwartet. im Fall von Port 443 nach SSL-Aushandlung. Es ist sicherlich möglich, HTTP-Anforderungen manuell auszugeben, es handelt sich jedoch nicht um eine Terminalsitzungssitzung und eine Shell. Im Allgemeinen ist es unwahrscheinlich, dass die Verbindung zu beliebigen Ports (selbst bekannten Ports) das gewünschte Ergebnis liefert.

Ich würde hinzufügen, dass in einigen neueren Versionen systemd statt upstart ausgeführt wird, so dass die Befehle ein wenig anders sein können. Journeyman Geek vor 7 Jahren 0
@JourneymanGeek Eigentlich denke ich, dass man mit "service sshd status" mit systemd arbeiten kann. Es ist sicherlich in Debian Jessie, das Upstart nicht verwendet. a CVn vor 7 Jahren 0
Der Dienst wird in den Distributionen, die systemd - systemctl - etwas abgeschrieben. Sie erhalten eine Warnmeldung für viele Befehle, die `service` verwenden Journeyman Geek vor 7 Jahren 0
@JourneymanGeek Guter Punkt. OP hat jedoch nicht angegeben, welche Ubuntu-Version es gibt, daher wären die Besonderheiten in jedem Fall ein bisschen Vermutung. a CVn vor 7 Jahren 0
-1
shubham0d

Öffnen Sie in Ubuntu-Computer / etc / ssh / sshd_config und ändern Sie PermitRootLogin in yes.

# Authentication:  LoginGraceTime 120  PermitRootLogin yes StrictModes yes 
Sie müssen außerdem eine Authentifizierungsmethode einrichten, da Ubuntu in einer Standardinstallation kein gültiges Kennwort für "root" angibt. Richten Sie entweder die Authentifizierung mit einem öffentlichen Schlüssel ein oder melden Sie sich bei einem Konto mit sudo-Berechtigungen an, und geben Sie "sudo passwd root" ein, um root ein ** gutes ** Kennwort zu geben. a CVn vor 7 Jahren 0
Es ist auch eine * schreckliche * Idee, Remote-Root-Logins zuzulassen - insbesondere ohne andere Sicherheitsmethoden wie die Schlüssel-basierte Authentifizierung. Journeyman Geek vor 7 Jahren 0
Ich gehe davon aus, dass er das Root-Passwort bereits festgelegt hat. shubham0d vor 7 Jahren 0