połączyć się z hostem localhost port 22: odmowa połączenia


86

Podczas instalowania Hadoopa na moim komputerze lokalnym otrzymałem następujący błąd

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

czy ktoś może mi pomóc rozwiązać ten błąd, niż zmiana numeru portu

Odpowiedzi:


116

Jeśli instalujesz Hadoop w systemie Mac OSX, włącz zdalne logowanie w Preferencjach systemowych, a następnie Udostępnianie plików . To działało na mojej maszynie.

Logowanie zdalne


2
FYI, to zadziałało, aby rozwiązać ten błąd w genralu (dla przyszłych użytkowników), który najwyraźniej nie ma nic wspólnego z Hadoop. Dzięki!
joedragons

83
  1. Usuń SSH za pomocą następującego polecenia:

    sudo apt-get remove openssh-client openssh-server
    
  2. Zainstaluj ponownie SSH za pomocą:

    sudo apt-get install openssh-client openssh-server
    

To rozwiąże twój problem.


2
Chociaż odpowiedź brzmi dziwnie, działa idealnie nawet na porcie 22.
user1613360

Dlaczego trzeba go usunąć? Gdyby tak było, problem nie istniałby.
Markiz Lorne

2
Myślę, że powodem jest to, że wcześniej nie był prawidłowo zainstalowany
Divyang Shah

1
Pracuj jak marzenie :)
Ashis Parajuli

1
@patrick proces usuwania jest potrzebny w przypadku, gdy został częściowo dodany lub nie jest spójny.
Divyang Shah

32

Czy masz sshdzainstalowany? Możesz to sprawdzić za pomocą:

which ssh
which sshd

Szczegółowe informacje można znaleźć pod tym linkiem .


1
Próbowałem wydać polecenie sudo apt-get install openssh-server, zaczęło pytać o hasło dla hduser, gdzie nie utworzyłem żadnego hasła dla użytkownika, jak mogę poznać domyślne hasło
Surya

zmęczyłem który ssh, który sshd, to daje mi wewnętrzną ścieżkę '/ usr / bin / ssh', są już zainstalowane w moim komputerze
Surya

3
ssh to klient, a sshd to serwer. Aby zainstalować sshdużyj sudo apt-get install openssh-server. Podczas tworzenia konta użytkownika dla hduser, musisz mieć utworzone hasło. Nie myl tego z pustym hasłem, które mogłeś ustawić dla ssh bez hasła z hduserkonta na hoście lokalnym.
Arun

23

Spróbuj zainstalować cały pakiet pakietów SSH:

sudo apt-get install ssh

Miałem sshpolecenie na moim Ubuntu, ale otrzymałem błąd, tak jak masz. Po pełnej instalacji wszystko zostało rozwiązane.


1
To rozwiązało to dla mnie, była dokładnie moja sytuacja (miałem już zainstalowany i uruchomiony sshd, po wyjęciu z pudełka). W Ubuntu 19.04.
Jonathan Hartley

11

Sprawdź, czy ten port jest otwarty. Może twój demon SSH nie działa. Sprawdź, czy sshd działa. Jeśli nie, to zacznij.


Próbowałem wydać polecenie sudo apt-get install openssh-server, zaczęło pytać o hasło dla hduser, gdzie nie utworzyłem żadnego hasła dla użytkownika, jak mogę poznać domyślne hasło dla hduser
Surya

1
Nie, prosi o hasło użytkownika root / sudo systemu linux, na którym instalujesz.
abhinav

[root @ localhost .ssh] # który ssh / usr / bin / ssh [root @ localhost .ssh] # który sshd / usr / sbin / sshd, ssh jest już zainstalowany na moim komputerze
Surya,

1
następnie uruchom demon sshd /bin/etc/init.d sshd start
abhinav

sshd re-exec wymaga wykonania z bezwzględną ścieżką, to jest wiadomość ze ścieżki
Surya,

10

Zrobiłem wszystkie powyższe sugestie i nie zadziałało. Następnie restartuję usługę ssh i działa. To jest to, co robie:

service ssh restart

Potem powtarzam

ssh localhost

Teraz mogę połączyć się z moim lokalnym hostem. Mam nadzieję, że to pomoże


6

Upewnij się, że /etc/hosts.allow zawiera:

ssh:ALL:allow
sshd:ALL:allow

LUB

ssh:localhost:allow
sshd:localhost:allow

LUB - inny wariant

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

UPEWNIJ SIĘ, że pierwsza linia w pliku NIE zaczyna się od tekstu ALL: ALL: DENY

NIC nie będzie w stanie komunikować się z hostem ... na dowolnym porcie.


Doskonała odpowiedź!
Kanuj Bhatnagar

5

Jeśli zrestartujesz usługę, to zadziała

$ service sshd restart

następnie sprawdź

$ ssh localhost

To będzie działać


5

Używam komputera Mac, to działało dla mnie:

Otwórz Preferencje systemowe, a następnie wyszukaj „udostępnianie”.

Wybierz zdalne logowanie, upewnij się, że jest włączone i pamiętaj o dodaniu wymaganych użytkowników.wprowadź opis obrazu tutaj

Mam to stąd


4

W moim przypadku (ubuntu 14.04, świeżo zainstalowany) po prostu uruchamiam następujące polecenie i działa!

sudo apt-get install ssh


4

Na ile jest to warte, otrzymałem następujący błąd podczas próby włożenia ssh do mojej lokalnej maszyny z systemem Ubuntu 16.04 Xenial z maszyny wirtualnej.

 ssh: connect to host 192.168.144.18 port 22: Connection refused

Zostało to natychmiast naprawione przez:

sudo apt-get install ssh

Zwróć uwagę, przed naprawą: „który sshd” nic nie zwrócił, a „który ssh” zwrócił

/usr/bin/ssh

A po poprawce: „który sshd” powrócił

/usr/sbin/sshd

4

Użyłem:

sudo service ssh start

Następnie:

ssh localhost

3

Może to być spowodowane niektórymi z poniższych:

  1. Serwer SSH nie jest zainstalowany (tylko klient SSH), spróbuj: apt-get install ssh openssh-client openssh-server
  2. Połączenie jest blokowane przez iptables (Firewall), spróbuj: ufw allow ssh

domyślnie ssh jest blokowany na zaporze, nawet podczas instalacji z włączoną
opcją

3

Na Macu przejdź do ustawień systemowych-> sieć-> udostępnianie i zezwól na zdalne logowanie.

spróbuj ssh localhost

Powinnaś być dobra.


3

Dla mnie zadziałało:

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

Wypróbowałem wszystkie powyższe rozwiązania, ale w jakiś sposób brakowało mi tego katalogu / var / run / sshd. Mam Ubuntu 16.04.4 LTS. Mam nadzieję, że moja odpowiedź pomoże, jeśli ktoś ma ten sam problem.


1

Mój numer portu jest inny. próbowałem użyć

ssh localhost -p 8088

to działało dla mnie


1

Jeśli nadal masz problemy, wypróbuj następujące rozwiązania:

sudo ufw enable    
sudo apt-get install openssh-server

To też może zadziałać.


1

Właściwie to rozwiązałem, właśnie zainstalowałem demona shh.

w terminalu:

sudo apt-get install openssh-server


1

Najlepszym sposobem jest udanie się do terminala

$ sudo gedit /etc/hosts

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

i ponownie uruchom usługę ssh za pomocą:

$ service ssh restart

Problem zostanie rozwiązany. Dzięki


1

jeśli używasz centOS lub Red Hat, powinieneś najpierw zaktualizować SElinux. Wykonaj następującą instrukcję

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

następnie musisz wykonać

semodule -i my-sshd.pp

powodzenia


1

Jeśli jesteś pewien, że zainstalowałeś ssh, możliwe, że sshi / lub sshdzostał zakończony lub usługa serwera nie została uruchomiona. Aby sprawdzić, czy te procesy są uruchomione, użyj:

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

LUB

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

Prawdopodobnie sshbyłby aktywny i działał, ale sshdtak się nie stało. Aby je włączyć:

sudo service ssh start

NB; - niektóre systemy mają opcję restartu, ale mój nie


1

próbować sudo vi /etc/ssh/sshd_config

w pierwszych kilku kłamstwach, które znajdziesz

Plik konfiguracyjny wygenerowany przez pakiet

Zobacz stronę podręcznika sshd_config (5) po szczegóły

Jakich portów, adresów IP i protokołów nasłuchujemy

Port xxxxx

zmień Port xxxxx na „Port 22” i wyjdź z vi, zapisując zmiany.

zrestartuj ssh sudo service ssh restart


1
  1. Przed instalacją / ponowną instalacją sprawdź stan sshd. . .
sudo systemctl status sshd
  1. Powinieneś zobaczyć coś takiego. . .
● 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. Po prostu włącz i uruchom sshd
sudo systemctl enable sshd
sudo systemctl start sshd

0

Możesz edytować swoje /etc/hosts. Na przykład, jeśli my hostnamejest ub0, ale hostnamein /etc/hostsjest localhost, może się to zdarzyć

connect to host ub0 port 22: Connection refused

Ponieważ hostnamew /etc/hoststo localhostnie ub0.

Dlatego hostnamepodczas tworzenia rozproszonych klastrów należy zachować ostrożność .


0

W systemie Linux:

  1. Usuń SSH za pomocą następującego polecenia:

    sudo apt-get remove openssh-client openssh-server
    
  2. Zainstaluj ponownie SSH za pomocą:

    sudo apt-get install openssh-client openssh-server
    

0

musisz sprawdzić konfigurację w sshd_config ListenAddress 0.0.0.0, zaktualizuj to i ponownie uruchom usługę sshd, która rozwiąże problem.



0

Sprawdź plik / etc / ssh / sshd_config pod kątem numeru portu. Upewnij się, że jest to 22.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.