Wie löse ich den Fehler "Verbindung abgelehnt" in einer SSH-Verbindung?

96

Ich habe einen Ubuntu Server 10.10 32-Bit in meinem Haus. Ich stelle von meinem PC aus über Putty eine SSH-Verbindung her.

Das Problem ist, manchmal kann ich mich nahtlos einloggen. Manchmal erhalte ich jedoch einen Fehler wie diesen:Network error: Connection refused.

Dann ändere ich nichts, versuche mich ein paar Mal erneut anzumelden, warte eine Weile und versuche es erneut. Manchmal kann ich mich einloggen, manchmal nicht. Es kommt mir ziemlich zufällig vor.

Was kann ich tun, um das zu lösen?

Bearbeiten:

Und manchmal gibt Putty Network error: Software caused connection abortFehler nach dem Anzeigen von login as:Text.

Hier ist die Ausgabe von ping -t:

Pinging 192.168.2.254 with 32 bytes of data:
Reply from 192.168.2.254: bytes=32 time=6ms TTL=64
Reply from 192.168.2.254: bytes=32 time=65ms TTL=6
Reply from 192.168.2.254: bytes=32 time=88ms TTL=6
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=3ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64

Ich habe die Firewall des Routers ausgeschaltet, und jetzt scheint alles zu funktionieren. Abgesehen davon kann ich meinen Webserver immer noch nicht aufrufen, indem ich von meinem PC aus eine externe IP-Adresse eingebe.

frbry
quelle
das nächste mal scheißt es so aus; starte nochmal einen Ping drauf, geht das noch? Wie viele Leute ssh zu dieser Maschine?
Myusuf3
Nur ich ssh diesen Server.
Frbry
Genau das gleiche Problem gibt es auch, wenn nach der Anmeldung oder Kennworteingabe eine Mischung aus erfolgreichen Verbindungen (die dann stundenlang funktionieren), "Verbindung abgelehnt" und "Software-verursachter Verbindungsabbruch" angezeigt wird. Einige zusätzliche Details: In meinem Fall handelt es sich um eine virtuelle 64-Bit-Maschine (mit Ubuntu Server 10.10) auf einem Microsoft Hyper-V-Host, die die Emulation "Alte Netzwerkkarte" verwendet.
Hheimbuerger
SSH ist auf Ihrem Server installiert?
Willian Soares

Antworten:

82

Sie müssen openssh-server unter Linux installieren, bevor dies funktioniert. Rufen Sie die interne IP-Adresse von Ubuntu ab und verwenden Sie diese IP, um die Portweiterleitung auf Port 22 (SSH) Ihres Routers einzurichten. Auch wenn Sie nicht beabsichtigen, SSH von außerhalb Ihres Netzwerks auszuführen, ist dies nicht erforderlich.

So installieren Sie openssh-server:

sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]
MacGyver
quelle
10
Beantwortet die Frage nicht direkt, aber dies ist nützlich, da Ubuntu nicht mit einem SSH-Server vorinstalliert wird.
Ostati
Ich habe vor kurzem einen neuen Laptop bekommen und total vergessen, dass er nicht standardmäßig installiert ist = D
Izkata
40

Es stellte sich heraus, dass ein IP-Adressenkonflikt die Hauptursache für diese SSH-Fehlermeldung war.

Nachdem ich die Antworten oben gelesen hatte, vermutete ich einen IP-Adressenkonflikt, musste aber nachweisen, dass der Adressenkonflikt das Problem war oder nicht.

Dieser großartige Artikel zeigte, wie Sie mit arp-scan feststellen können, ob zwei Hardwareteile dieselbe IP-Adresse beanspruchen.

In meinem Fall hatte der Server eine statische IP-Adresse von 192.168.1.42. Ich habe arp-scan verwendet, um diese Adresse zu überprüfen:

$ sudo apt-get install arp-scan
$ arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

Sicher gab es einen Konflikt, wie oben gezeigt. Dann habe ich arp-scan ohne grep ausgeführt, festgestellt, dass .43 verfügbar ist, bin gegangen /etc/network/interfacesund habe die statische IP von .42 in .43 geändert

Rian Sanderson
quelle
Das Ausführen dieses Befehls zeigte nur eine Zeile in meiner Box, mit der Ausnahme, dass der Name der eines anderen Geräts war.
Assylias
Vielen Dank für den Hinweis in die richtige Richtung in Bezug auf IP-Adressenkonflikte. Hatte ein ähnliches Problem! +1
DominikAngerer
Nur hat mir so viel Zeit gespart ... ein dickes Lob ...
Chris Barlow
Manchmal muss mein Router nur neu gestartet werden, um dieses Problem zu beheben.
Gabriel Staples
14

Verwenden Sie arpingfür die IP-Adresse, bei der Verbindungsprobleme auftreten. Dadurch wird die MAC-Adresse für jede Ping-Antwort angezeigt und hoffentlich die falsche MAC-Adresse entlarvt.

arping 192.168.2.254

Sie sollten den DHCP-IP-Adresspool auf dem DHCP-Server überprüfen und sicherstellen, dass keine Geräte statische IP-Adressen haben, die mit dem DHCP-Pool kollidieren.

Diese Hinweise deuten auf eine doppelte IP hin:

  • ping ttl und round trip time sehen aus wie 2 verschiedene Server
  • Unterbrechungen ohne Neustart
John Shalamskas
quelle
Hervorragend, zeigte mir genau den richtigen Weg! Konnte anhand der zweiten MAC-Adresse nachverfolgen, an welchem ​​Port es sich befand, und die IP des Druckers ändern
Kanadier Luke,
1
Ich musste -I wlan0 (wlan0 ist mein WLAN-Gerät)
hinzufügen
6

Ich hatte das gleiche Problem, obwohl ich eine statische IP-Adresse hatte. Es stellt sich heraus, dass einem anderen Server in meinem Netzwerk dieselbe (statische) IP-Adresse zugewiesen wurde. (Duh.) Es scheint also, dass das Problem durch IP-Adressenkonflikte verursacht wird, aber es kann verschiedene Möglichkeiten geben, wie sie auftreten können. Wenn Sie statisch eingestellt haben und weiterhin ein Problem haben, fahren Sie den Computer herunter und senden Sie einen Ping-Befehl an die Adresse. Wenn Sie Antworten erhalten, suchen Sie nach Informationen, die dieselbe Adresse haben könnten.

DLosc
quelle
1
Ich hatte die gleichen Symptome und fand einen Computer mit der gleichen IP-Adresse wie der Server.
SabreWolfy
4

Was bekommst du, wenn du das tust?

grep 192.168.2.25 /etc/hosts.deny

Wenn das etwas zurückgibt, müssen Sie es entfernen.

Jodi MIddleton
quelle
10
Das ist einer der berüchtigten "nutzlosen Verwendungen von cat" - Sie können einfachgrep 192.168.2.25 /etc/hosts.deny
Tobias Kienzler
@TobiasKienzler Behoben
wjandrea
4

öffne die Datei von ssh config:

sudo nano /etc/ssh/ssh_config

Finde den Hafen

#port 22

Entfernen Sie scharf die Anschlussoption

Speichern Sie dann die Datei mit ctrl + xund starten Sie den Dienst neu

sudo service ssh restart
Amin
quelle
3

Dies ist eher ein Problem Ihrer Netzwerkgeräte als des Servers.

Überprüfen Sie / var / log / messages auf Ethernet-Verbindungen (oder wlan bei drahtlosen Verbindungen). Wenn ja, wechseln Sie die Kabel.

forcefsck
quelle
Ja, ich habe versucht und es ist mir gelungen, eine SSH-Verbindung von außerhalb meines Netzwerks (in dem sich mein Server und mein PC befinden) herzustellen. Es scheint gut zu funktionieren. Mein Server ist auch ein Webserver. Wenn ich versuche, von meinem PC aus eine Verbindung über Port 80 herzustellen, wird die Anmeldeseite meines ADSL-Modems angezeigt. Wenn ich jedoch dasselbe von einem anderen Computer aus versuche, der sich außerhalb meines Netzwerks befindet, wird die Seite It Works von Apache angezeigt.
Frbry
Was ist Ihre PC-IP, Ihre Server-IP und Ihre interne ADSL-Router-IP?
Forcefsck
PC: 192.168.2.2 (von DHCP empfangen) Server: 192.168.2.254 (statisch, außerhalb des DHCP-Bereichs) ADSL-Router: 192.168.2.1
Frbry
Ich bin ein bisschen verwirrt, wenn Sie eine Verbindung von 192.168.2.2 zu 192.168.2.254 Port 80 herstellen, erhalten Sie das Login des ADSL-Modems?
Forcefsck
1
Sofern Sie keinen Web-Proxy für Ihren Server eingerichtet haben, reagiert Ihr ADSL-Modem eindeutig auf Anfragen an 192.168.2.254, und dies ist wahrscheinlich der Fall, wenn Sie den Connection refusedFehler mit ssh erhalten. Sie müssen also die Einstellungen Ihres ADSL-Modems überprüfen.
Forcefsck
3

Ich kann genau dieses Problem bestätigen: Es ist kein einfaches Konnektivitätsproblem. Die Ethernet-Verbindung ändert den Status nicht. Server ist über Ping erreichbar; ssh stellt gelegentlich eine fehlerfreie Verbindung her, dann wird scheinbar zufällig keine Verbindung hergestellt oder die vorhandene ssh-Sitzung wird abgebrochen. Dies tritt unter Ubuntu 10.04 und 11.04 auf. Nach dem Vorschlag von hheimbuerger habe ich dem Server eine statische IP gegeben, dies schien das Problem zu beheben.

Problemumgehung: Ändern Sie den Adapter von DHCP in statisch.

George
quelle
1

Ich hatte genau das gleiche Problem und in meinem Fall stellte sich heraus, dass es sich um einen IP-Adressenkonflikt handelte. Meine Ubuntu-VM hatte eine dynamische Adresse, aber einem anderen Computer (in diesem Fall einem Telefon) wurde eine statische IP zugewiesen, von der der DHCP-Server nichts wusste.

Durch einfaches Ändern der vom DHCP-Server zugewiesenen IP-Adresse für die Ubuntu-VM wurden alle Verbindungsprobleme behoben.

Heimbürger
quelle
1

Dies liegt im Grunde an einem der folgenden Gründe:

  1. Zu viele Benutzer im Netzwerk versuchen, auf den Server zuzugreifen
  2. Mehr als ein Computer im Netzwerk hat dieselbe IP-Adresse wie der Server, der einen IP-Konflikt verursacht
  3. Falscher Benutzername oder Ihre Anmeldeinformationen wurden widerrufen
Mevin Babu
quelle
0

Möglicherweise möchten Sie Ihre iptablesRegeln auf Ihrem Server überprüfen . Es hört sich so an, als ob Sie eine Regel zur Begrenzung neuer SSH-Verbindungen haben.

Die nächste Regel erlaubt 5 neue Verbindungen pro Minute. Wenn Sie dieses Limit überschreiten, werden Ihre neuen Verbindungen nach einiger Zeit abgelehnt:

-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT

Sehen Sie sich die IPTables / Netfilter-Dokumentation an und scrollen Sie ein wenig bis limit.

Lekensteyn
quelle
0

arp-scan zeigt zwei doppelte Geräte an, aber wenn ich Advanced IP Scanner unter Win8 verwende, sehen alle gut aus. Sie sind sich also nicht immer einig.

Ich habe den Router so eingestellt, dass er alle Leasingverträge widerruft, indem er nur 1-Stunden-Leasingverträge erteilt. Wird es Zeit geben, um zu sehen, ob es aufklärt.

SDsolar
quelle