Verbindung zum Host localhost Port 22 herstellen: Verbindung abgelehnt


82

Während der Installation von Hadoop auf meinem lokalen Computer wurde der folgende Fehler angezeigt

ssh -vvv localhost 
OpenSSH_5.5p1, OpenSSL 1.0.0e-fips 6 Sep 2011 
debug1: Reading configuration data /etc/ssh/ssh_config    
debug1: Applying options for * 
debug2: ssh_connect: needpriv 0 
debug1: Connecting to localhost [127.0.0.1] port 22. 
debug1: connect to address 127.0.0.1 port 22: Connection refused 
ssh: connect to host localhost port 22: Connection refused

Kann mir jemand helfen, diesen Fehler zu beheben, als die Portnummer zu ändern?

Antworten:


112

Wenn Sie Hadoop unter Mac OS X installieren, aktivieren Sie die Remote-Anmeldung unter Systemeinstellungen und dann Dateifreigabe . Das hat auf meiner Maschine funktioniert.

Fernanmeldung


2
Zu Ihrer Information, dies hat bei mir funktioniert, um diesen Fehler im Allgemeinen (für zukünftige Benutzer) zu lösen, der anscheinend nichts speziell mit Hadoop zu tun hat. Vielen Dank!
Joedragons

78
  1. Entfernen Sie SSH mit dem folgenden Befehl:

    sudo apt-get remove openssh-client openssh-server
    
  2. Installieren Sie SSH erneut mit:

    sudo apt-get install openssh-client openssh-server
    

Es wird Ihr Problem lösen.


2
Obwohl die Antwort seltsam klingt, funktioniert sie auch auf Port 22 perfekt.
user1613360

Warum sollte es notwendig sein, es zu entfernen? Wenn es dort wäre, würde das Problem nicht existieren.
Marquis von Lorne

2
Ich denke, der Grund ist, dass es vorher nicht richtig installiert wurde
Divyang Shah

1
Arbeite wie ein Zauber :)
Ashis Parajuli

1
@patrick Der Entfernungsprozess wird benötigt, falls er teilweise hinzugefügt wird oder nicht in einer konsistenten Phase.
Divyang Shah

32

Hast du sshdinstalliert? Sie können dies überprüfen mit:

which ssh
which sshd

Für detaillierte Informationen können Sie diesen Link besuchen .


1
Ich habe versucht , sudo apt-get geben OpenSSH-Server - Befehl installieren, es begann für hduser Passwort zu fragen, wo ich für den Benutzer ein beliebiges Passwort erstellen tat nicht, wie ich das Standard - Passwort kennt , kann
Surya

Ich habe es satt, welches SSH, welches SSHD, dies gibt mir den internen Pfad '/ usr / bin / ssh', sie sind bereits auf meinem Computer installiert
Surya

3
ssh ist der Client und sshd ist der Server. Zur Installation sshdverwenden sudo apt-get install openssh-server. Wenn Sie das Benutzerkonto für erstellt haben hduser, müssen Sie ein Kennwort erstellt haben. Verwechseln Sie das nicht mit der leeren Passphrase, die Sie möglicherweise für passwortloses SSH vom hduserKonto auf sich selbst auf localhost festgelegt haben.
Arun

22

Versuchen Sie, das gesamte SSH-Paket zu installieren:

sudo apt-get install ssh

Ich hatte sshBefehl auf meinem Ubuntu, bekam aber den Fehler wie Sie. Nach der vollständigen Installation wurde alles behoben.


1
Dies löste es für mich, war genau meine Situation (ich hatte auch bereits sshd installiert und lief, aus der Box). Unter Ubuntu 19.04.
Jonathan Hartley

11

Überprüfen Sie, ob dieser Port offen ist. Möglicherweise läuft Ihr SSH-Dämon nicht. Überprüfen Sie, ob sshd ausgeführt wird. Wenn nicht, starten Sie es.


Ich habe versucht , sudo apt-get geben OpenSSH-Server - Befehl installieren, es begann für hduser Passwort zu fragen, wo ich für den Benutzer ein beliebiges Passwort erstellen tat nicht, wie ich das Standard - Passwort für hduser wissen können
Surya

1
Nein, es wird nach dem Passwort für den Root- / Sudo-Benutzer des Linux-Systems gefragt, auf dem Sie installieren.
Abhinav

[root @ localhost .ssh] # welches ssh / usr / bin / ssh [root @ localhost .ssh] # welches sshd / usr / sbin / sshd, ssh ist bereits auf meinem Computer installiert
Surya

1
Führen Sie dann den sshd-Dämon /bin/etc/init.d aus. sshd start
abhinav

sshd re-exec erfordert die Ausführung mit einem absoluten Pfad, dies ist eine Nachricht vom Pfad
Surya

9

Ich habe alle oben genannten Vorschläge gemacht und es hat nicht funktioniert. Dann starte ich den SSH-Dienst neu und es funktioniert. Das ist was ich mache:

service ssh restart

Dann mache ich noch einmal

ssh localhost

Jetzt kann ich mich mit meinem lokalen Host verbinden. Ich hoffe es hilft


6

Stellen Sie sicher, dass /etc/hosts.allow Folgendes enthält:

ssh:ALL:allow
sshd:ALL:allow

ODER

ssh:localhost:allow
sshd:localhost:allow

ODER - eine andere Variante

ssh:{host1,host2,host3...}:allow
sshd{host1,host2,host3...}:allow

Stellen Sie sicher, dass die erste Zeile in der Datei NICHT mit ALL: ALL: DENY beginnt

NICHTS kann mit dem Host kommunizieren ... an jedem Port.


Perfekte Antwort!
Kanuj Bhatnagar

5

Wenn Sie den Dienst neu starten, funktioniert er

$ service sshd restart

dann überprüfe

$ ssh localhost

Es wird klappen


4

Für meinen Fall (Ubuntu 14.04, frisch installiert) führe ich einfach den folgenden Befehl aus und es funktioniert!

sudo apt-get install ssh


4

Für das, was es wert ist, bekam ich den folgenden Fehler beim Versuch, auf meinem lokalen Computer, auf dem Ubuntu 16.04 Xenial ausgeführt wird, von einer VM aus zu ssh.

 ssh: connect to host 192.168.144.18 port 22: Connection refused

Es wurde sofort behoben mit:

sudo apt-get install ssh

Beachten Sie vor dem Fix: 'which sshd' hat nichts zurückgegeben und 'which ssh' hat zurückgegeben

/usr/bin/ssh

Und nach dem Fix: 'which sshd' kehrte zurück

/usr/sbin/sshd

4

Ich benutzte:

sudo service ssh start

Dann:

ssh localhost

4

Ich benutze einen Mac, das hat bei mir funktioniert:

Öffnen Sie die Systemeinstellungen und suchen Sie nach "Freigabe".

Wählen Sie Remote Login, stellen Sie sicher, dass es aktiviert ist, und denken Sie daran, die erforderlichen Benutzer hinzuzufügen.Geben Sie hier die Bildbeschreibung ein

Habe es von hier bekommen


3

Gehen Sie auf dem Mac zu Systemeinstellungen-> Netzwerk-> Freigabe und erlauben Sie die Remote-Anmeldung.

versuchen Sie es mit ssh localhost

Du solltest gut sein.


3

Was für mich funktioniert hat ist:

sudo mkdir /var/run/sshd
sudo apt-get install --reinstall openssh-server

Ich habe alle oben genannten Lösungen ausprobiert, aber irgendwie fehlte mir dieses Verzeichnis / var / run / sshd noch. Ich habe Ubuntu 16.04.4 LTS. Hoffe, meine Antwort hilft, wenn jemand das gleiche Problem hat.


2

Dies kann folgende Ursachen haben:

  1. SSH Server ist nicht installiert (nur SSH Client), versuchen Sie: apt-get install ssh openssh-client openssh-server
  2. Die Verbindung wird durch iptables (Firewall) blockiert. Versuchen Sie Folgendes: ufw allow ssh

Standardmäßig ist ssh in der Firewall blockiert, auch wenn die Installation mit aktiviertem
openssh

1

Meine Portnummer ist anders. Ich habe versucht, mit

ssh localhost -p 8088

das hat bei mir funktioniert


1

Wenn Sie weiterhin Probleme haben, versuchen Sie Folgendes:

sudo ufw enable    
sudo apt-get install openssh-server

Dies könnte auch funktionieren.


1

Eigentlich habe ich das gelöst, ich habe gerade shh Daemon installiert.

im Terminal:

sudo apt-get install openssh-server


1

Eine Möglichkeit besteht darin, zum Terminal zu gehen

$ sudo gedit /etc/hosts

***enter your ip address ipaddress of your pc  localhost 
    ipaddress of your pc  localhost(Edit your pc name with localhost) **

und starten Sie Ihren SSH-Dienst erneut mit:

$ service ssh restart

Problem wird behoben. Vielen Dank


1

Wenn Sie centOS oder Red Hat verwenden, sollten Sie zuerst SElinux aktualisieren. Führen Sie die folgende Anweisung aus

ausearch -c 'sshd' --raw | audit2allow -M my-sshd

dann müssen Sie ausführen

semodule -i my-sshd.pp

Viel Glück


1

Wenn Sie sicher sind, dass Sie ssh installiert haben, ist es möglich, dass sshund / oder sshdbeendet wurde oder der Serverdienst nicht gestartet wurde. Um zu überprüfen, ob diese Prozesse ausgeführt werden, verwenden Sie:

//this tells you whether your ssh instance is active/inactive
sudo service ssh status

ODER

//this list all running processes whose names contain the string "ssh"
sudo ps -A | grep ssh

Es ist wahrscheinlich, dass sshdas aktiv ist und läuft, aber sshdnicht. So aktivieren Sie sie:

sudo service ssh start

NB; - Einige Systeme haben eine Neustartoption, meine jedoch nicht


1

Versuchen sudo vi /etc/ssh/sshd_config

In den ersten Lügen finden Sie

Paketgenerierte Konfigurationsdatei

Weitere Informationen finden Sie in der Manpage sshd_config (5)

Auf welche Ports, IPs und Protokolle wir achten

Port xxxxx

Ändern Sie Port xxxxx in "Port 22" und beenden Sie vi, indem Sie die Änderungen speichern.

ssh neu starten sudo service ssh restart


0

Sie sollten Ihre bearbeiten /etc/hosts. Zum Beispiel, wenn mein hostnameist ub0, aber das hostnamein /etc/hostsist localhost, kann es auftreten

connect to host ub0 port 22: Connection refused

Da die hostnamein /etc/hostsist localhostnicht ub0.

Sie sollten also hostnamebeim Aufbau verteilter Cluster vorsichtig sein .


0

Für Linux:

  1. Entfernen Sie SSH mit dem folgenden Befehl:

    sudo apt-get remove openssh-client openssh-server
    
  2. Installieren Sie SSH erneut mit:

    sudo apt-get install openssh-client openssh-server
    

0

Sie müssen die Konfiguration in sshd_config überprüfen. ListenAddress 0.0.0.0 aktualisiert dies und startet den sshd-Dienst neu, der das Problem behebt.



0

Überprüfen Sie die Datei / etc / ssh / sshd_config auf die Portnummer. Stellen Sie sicher, dass es 22 ist.


0
  1. Überprüfen Sie vor der Installation / Neuinstallation den Status von sshd. . .
sudo systemctl status sshd
  1. Sie sollten so etwas sehen. . .
 sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor prese>
   Active: inactive (dead)
     Docs: man:sshd(8)
           man:sshd_config(5)
  1. Aktivieren und starten Sie einfach sshd
sudo systemctl enable sshd
sudo systemctl start sshd
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.