Warum erhalte ich den Fehler "Port 22: Verbindung abgelehnt"?


70

Ich bekomme eine

port 22: Connection refused 

Fehler beim Verbinden mit einem Server.

Ich habe sowohl den OpenSSH-Client als auch den Server installiert und sie werden ausgeführt. Trotzdem liegt ein Fehler vor. Bitte helfen Sie.


2
Nur um zu verdeutlichen, ist der openssh Server auf dem Server installiert?
Kevin

Überprüfen Sie, ob ssh auf Port 22 ausgeführt wird und ob Sie eine Firewall-Regel haben, die den Port blockiert.
Manula Waidyanatha

1
Laut mir, Firewall so konfigurieren, dass es ssh (Port 22) erlaubt, das momentan von der Firewall blockiert wird.
Ketan Patel,


Dies könnte wahrscheinlich auch auf einen vorübergehenden Netzwerkverlust zurückzuführen sein. Überprüfen Sie also Ihre Internetverbindung.
user648610

Antworten:


78

Ich ging dieses Problem durch und bekam schließlich die passende Antwort.

sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22

Dann ging in raspi-configein Terminalfenster und aktivierte ssh.

Dadurch kann Port 22 für sshd verwendet werden.


Gleiches Problem hier als @SDsolar
Nadav B

@Nadiv, ich musste auch raspi-config verwenden, um ssh zu aktivieren. Die Antwort wurde bearbeitet, um dies widerzuspiegeln.
SDsolar

Führt die ersten drei Zeilen auf beiden Computern aus und die Datei wird nun erfolgreich übertragen. Warum wird Ubuntu nicht mit diesen standardmäßig installiert / aktiviert? Der connection refusedFehler ist so kryptisch, ich hatte keine Ahnung, ob es sich um ein Firewall-Problem, ein Problem mit dem Benutzernamen, eine IP-Adresse usw. usw. handelt. Sehr frustrierend.
Hassgeist

sudo ufw allow 22einmal gearbeitet. Wieder trat der Fehler auf.
Vineeshvs

32

Überprüfen Sie auf dem Server, ob sshd tatsächlich ausgeführt wird und Port 22 überwacht:

$ sudo netstat -anp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1538/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      1538/sshd       

Wenn Sie keine Ergebnisse erhalten oder diese nicht anzeigen, dass Sie auf tcp 0.0.0.0:22 hören, beheben Sie dies.

Wenn Sie TUN, dass sshd ausgeführt wird und TCP-Port 22 überwacht, stellen Sie sicher, dass keine Firewall-Regel im Weg ist. Wieder auf dem Server:

$ sudo iptables -L | grep ssh
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh 

Oder alternativ

$ sudo ufw verbose
Status: active

To                         Action      From
--                         ------      ----
22                         DENY        Anywhere
22/tcp                     DENY        Anywhere

Wenn Sie eine Regel wie eine der oben genannten sehen, müssen Sie dies korrigieren.

Wenn keine Firewall-Regeln angezeigt werden und der Dienst auf dem Server ausgeführt wird, müssen Sie Ihre Workstation und das Netzwerk, mit dem sie verbunden ist, überprüfen. Können Sie eine Verbindung zu anderen Servern herstellen? Können Sie Ihre eigene Schnittstelle oder Loopback-Adresse anpingen? Usw.


1
und ob du dich mit anderen servern verbinden kannst?
Opensourcechris

2
Hey, danke für die Antwort, meine ist nicht Port 22, sondern Port 2222. Du hast gesagt, repariere das, aber wie?
Yogesh Darji

Meins gab keine Ergebnisse.
SDsolar

Korrigieren Sie es mit: sudo ufw allow 22(oder was auch immer Ihr Port ist)
John D

netstat ist veraltet (und in neueren Versionen von Ubuntu nicht standardmäßig installiert - Befehl 'netstat' nicht gefunden, kann aber mit ... installiert werden ). Vielleicht ein Update für iproute2 ?
Peter Mortensen

14

Versuche dies

sudo apt-get remove openssh-client openssh-server

und dann

sudo apt-get install openssh-client openssh-server

es hat bei mir funktioniert :)

Wahrscheinlich nicht die orthodoxste Lösung ... :)


3
Die Verwendung von dpkg-reconfigure ist möglicherweise einfacher als die Verwendung einer Deinstallations- / Neuinstallationslösung
Stephen Michael Kellat,

1
Ich musste apt-get purge openssh-server verwenden (anstatt zu entfernen), damit es funktioniert.
11101101b

6

Kam über das gleiche Problem nach der Installation von Raspbian. Lösung, die bei mir funktioniert hat:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

Wenn dies funktioniert hat, müssen Sie zuvor Ihre sshd-config geändert haben.
guntbert

Ich habe sshd_config auf Raspbian bearbeitet, als ich versucht habe, ssh einzurichten. Diese Lösung hat bei mir funktioniert.
Scott

+1. Einzige Lösung, die funktioniert hat!
Nadav B

1

Die folgenden Befehle haben bei mir funktioniert:

cd /root/.ssh
vi known_hosts

Löschen Sie nun alles in dieser Datei und geben Sie im Terminal Folgendes ein:

service sshd restart

Quelle: SSH - Verbindung abgelehnt


Ähnliches Problem für mich, aber ich löschte meine known_hosts mit ssh-keygen -f "/home/MYUSER/.ssh/known_hosts" -R MYHOSTund ersetzte in meinem Linux-Benutzer und Remote-Host, mit dem ich mich verbinden wollte
Chris

1

Dies könnte es auch für Sie beheben. Versuchen Sie, die Portweiterleitungsverbindung 22 von Ihrer ausgehenden IP-Adresse zu Ihrer lokalen IP-Adresse auf demselben Port weiterzuleiten. Arbeitete für mich und erlaubte mir, auf einem entfernten Ubuntu-Computer zu sshen.


0

Die statische IP war in meinem Fall falsch. Finden Sie heraus, indem Sie ping <my_ip>nach dem Umschalten des Servers. Es pingte immer noch, auch wenn der Server ausgeschaltet war. Das Ändern der IP löste das Problem.

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.