„Odmowa połączenia” SSH na Raspberry pi - nie mogę znaleźć przyczyny

13

Mam następujący problem SSH „połączenie odrzucone”. To działałoby dobrze, ale podczas pracy nad SSH dostałbym „odmowę połączenia” i musiałbym ponownie się połączyć (co nie występuje przez dobre 5-10 minut). Próbowałem już wszystkiego (restart Linux, restart ssh), ale nadal nie pomaga. Sprawdziłem również var / log, ale nie ma tam nic pomocnego ...

UWAGA: Ciekawą notatką, którą znalazłem jest to, że kiedy próbuję ssh na mój zewnętrzny ip (277 ...), przechodzi na czarny ekran cmd, zamykam to i wypróbowuję mój adres 192.168.0.13 i pozwala mi się zalogować .. ale krótko podczas gdy ponownie połączenie odrzucone ... Oczywiście, jeśli otworzę mój serwer i sudo sshd restart, moje ssh "połączenie odrzucone" znika ...

Mój port ssh jest otwarty o 23 i mam go również ustawiony na modemie / routerze

sudpi@raspberrypi:~$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1817/apache2
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      2227/vsftpd
tcp        0      0 127.0.0.1:3350          0.0.0.0:*               LISTEN      1784/xrdp-sesman
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN      3115/sshd
tcp        0      0 0.0.0.0:3389            0.0.0.0:*               LISTEN      1781/xrdp
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2397/mysqld

Po rozłączeniu i ponownym zalogowaniu się i sprawdzeniu „WHO” widzę tylko moje poprzednie połączenie, mój root i bieżące połączenie

whopi@raspberrypi:~$ who  
pi       tty1         2013-01-28 09:20
pi       pts/0        2013-01-28 10:28 (192.168.0.12)
pi       pts/1        2013-01-28 10:32 (192.168.0.12)

To właśnie mam w moim ssh_config, który zmodyfikowałem (SSH do 23, ponieważ Rogers używa 22 ...)

#   Port 23
...    
#Keep my damn connection alive!
KeepAlive yes
ServerAliveInterval 60

Właśnie to dostaję, kiedy uruchamiam arp-scan

pi@raspberrypi:/etc$ sudo arp-scan -I eth0 -l | grep 192.168.0.13
192.168.0.13    a0:6c:ec:ec:bb:5b       (Unknown)

Ta część, którą znalazłem w Internecie, powiedziała mi, że powinienem opublikować następujące dwie informacje

pi@raspberrypi:~$ ps afxu | grep sshd
root      2838  0.0  0.7   9800  3168 ?        Ss   10:27   0:00 sshd: pi [priv]                                                                                   
pi        2845  0.0  0.3   9800  1628 ?        S    10:28   0:00  \_ sshd: pi@pt                                                                                   s/0
root      2854  0.0  0.7   9800  3168 ?        Ss   10:32   0:00 sshd: pi [priv]                                                                                   
pi        2861  0.0  0.3   9800  1628 ?        S    10:32   0:00  \_ sshd: pi@pt                                                                                   s/1
root      2900  0.3  0.7   9800  3168 ?        Ss   10:44   0:00 sshd: pi [priv]                                                                                   
pi        2907  0.0  0.3   9800  1628 ?        S    10:44   0:00  \_ sshd: pi@pt                                                                                   s/2
root      2934  0.0  0.2   6204  1060 ?        Ss   10:45   0:00 /usr/sbin/sshd
root      2954  0.7  0.7   9800  3164 ?        Ss   10:45   0:00  \_ sshd: pi [p                                                                                   riv]
pi        2961  0.1  0.3   9800  1624 ?        S    10:46   0:00      \_ sshd: p                                                                                   i@pts/3
pi        2970  0.0  0.1   3536   796 pts/3    S+   10:46   0:00              \_                                                                                    grep sshd

EDYCJA: pi @ raspberrypi: ~ $ ssh -vvv 192.168.0.13 (TO może być długie ... Dziękuję Bart Friederichs)

pi@raspberrypi:~$ ssh -vvv 192.168.0.13 -p 23
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.0.13 [192.168.0.13] port 23.
debug1: Connection established.
debug1: SELinux support disabled
...
debug1: match: OpenSSH_6.0p1 Debian-3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-3
debug2: fd 3 setting O_NONBLOCK
debug3: put_host_port: [192.168.0.13]:23
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
...
debug1: Next authentication method: publickey
debug1: Trying private key: /var/www/.ssh/id_rsa
debug3: no such identity: /var/www/.ssh/id_rsa
debug1: Trying private key: /var/www/.ssh/id_dsa
debug3: no such identity: /var/www/.ssh/id_dsa
debug1: Trying private key: /var/www/.ssh/id_ecdsa
debug3: no such identity: /var/www/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password: - I TYPED PASSWORD -
...
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Linux raspberrypi 3.6.11+ #350 PREEMPT Mon Jan 7 21:51:11 GMT 2013 armv6l
użytkownik5673
źródło
Uruchom netstat -tlpnjako root (lub z sudo), jeśli chcesz zobaczyć nazwy programów / PID. Przeniesienie SSH z domyślnego portu nie wydaje się dobrym pomysłem, jeśli nie jesteś wystarczająco zaznajomiony z administracją Linuksem.
Bruno
1
Linie zaczynające się od # są komentarzami, więc w linii, w której podajesz port 23, masz # przedtem, nie będzie on przetwarzany, a zatem użyje standardowego portu (22). Możesz także mieć coś w /etc/hosts.allow lub /etc/hosts.deny kontrolując, kto może połączyć się z sshd. Czy sprawdziłeś, czy nie masz kolizji z adresem IP w swojej sieci?
Fajka

Odpowiedzi:

8

Twój sshdnasłuchuje na porcie 23, ale łączysz się z portem 22 (domyślnie ssh).

Spróbuj tego:

  pi@raspberrypi:~$ ssh -vvv 192.168.0.13 -p 23

Błąd „odmowa połączenia” oznacza, że ​​warstwa TCP w jądrze nie akceptuje żadnych połączeń na tym porcie. Nie ma to nic wspólnego z utrzymywaniem przy życiu lub czymkolwiek innym.

Używasz również arpdo wyszukiwania rzeczy, ale byłoby lepsze narzędzie nmap. arpinformuje tylko, czy adres IP znajduje się w domenie rozgłoszeniowej, a nie czy są otwarte jakiekolwiek porty.

Bart Friederichs
źródło
Witaj, dziękuję za odpowiedź, próbowałem pi @ raspberrypi: ~ $ nmap -bash: nmap: nie znaleziono polecenia ... czy muszę go zainstalować? i czy jest taka dla malin? Dziękuję również za korektę, którą zredagowałem przy pomocy -p 23, ale nie ma w niej nic, co wyglądałoby nie na miejscu ...
nmapnie jest tak naprawdę potrzebny, tylko przydatne narzędzie. Wydaje się, że dokonana aktualizacja sprawiła, że ​​działała?
Bart Friederichs
5

Cytując dokumentację :

Od wydania z listopada 2016 r. Raspbian domyślnie wyłącza serwer SSH. Będziesz musiał włączyć go ręcznie.

Aby włączyć SSH na komputerach za pośrednictwem konsoli:

Wejdź sudo raspi-configdo terminalu, najpierw wybierz advanced options, a następnie przejdź do ssh, naciśnij Enteri wybierz Enable or disable ssh server.

Aby włączyć SSH dla maszyn bezgłowych:

W przypadku konfiguracji bezgłowej SSH można włączyć, umieszczając plik o nazwie sshbez rozszerzenia na partycji rozruchowej karty SD.


Skopiowano z odpowiedzi @techrafa na to pokrewne pytanie: SSH nie działa z nową instalacją .

Delgan
źródło
Chociaż technicznie może to odpowiedzieć na pytanie, nie jestem pewien, czy techraf będzie szczęśliwy, że właśnie skopiowałeś i wkleiłeś ich odpowiedź. Jeśli jednak poprosisz o ich zgodę przed opublikowaniem tego postu, będzie inaczej.
Darth Vader
1
Częścią „warunków świadczenia usług” (ust. 3) jest to, że w tym przypadku uważa się, że w tym przypadku chodzi o licencję Creative Commons Uznanie autorstwa, Na tych samych warunkach , i to ponowne zawłaszczenie jest zgodne z tymi warunkami. Jednak nie ma tu wielkiej odpowiedzi, ponieważ jest dość jasne w pytaniu, które sshdjest
aktualne
@DarthVader Opublikowałem to jako odpowiedź społeczności, poprawnie przypisując autorowi, myślałem, że to wystarczy.
Delgan
1
@goldilocks Jak zapewne się domyślacie, to pytanie pojawia się na górze wyników wyszukiwania Google dotyczących odmowy połączenia ssh dla Raspberry Pi. Wierzyłem, że to pomoże ludziom szybciej dowiedzieć się, co może być problemem.
Delgan
W bieżącej najnowszej konfiguracji (Raspbian Stretch) SSH znajduje się pod 5) Opcje interfejsów -> P2) SSH
R2RT
1

Miałem ten sam problem dziś rano i usunąłem go, usuwając i instalując openssh-server:

sudo apt-get remove openssh-server 
sudo apt-get install openssh-server
Brian Leung
źródło
Witaj i witaj w Stack Exchange! Rozważ dodanie bardziej szczegółowego wyjaśnienia z korzyścią dla przyszłych czytelników.
NULL
0

Miałem ten sam problem i moim rozwiązaniem było wyłączenie i odinstalowanie iptables.

uruchom następujące polecenia:

(jako sudoer)

iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P AKCEPTACJA WEJŚCIA iptables -P AKCEPTACJA WYJŚCIA iptables -P AKCEPTACJA DO PRZODU

sudo apt-get remove --purge iptables

Jibrilat
źródło
0

Dla mnie działało: poszło do / etc / ssh / ssh_config i / etc / ssh / sshd_config, a następnie pozwoliło na dostęp bez hasła.

Ponownie uruchomiłem usługę i voilà, działa!

Mário Coelho
źródło
0

Aktualizacja odpowiedzi Delgana dla Raspberry pi 3, RASPBIAN JESSIE WITH PIXEL OS

W terminalu

sudo raspi-config 

Wybierz Opcje interfejsów -> SSH. Naciśnij Enter i wybierz Włącz lub wyłącz serwer ssh

użytkownik65260
źródło
0

Nie jestem pewien, czy moja wskazówka będzie pomocna. Miałem ten sam problem i jestem nowy w świecie Linuksa. Po przeczytaniu dokumentacji Raspberry Pi stwierdziłem, że problem dotyczy konfiguracji Pi, w której wyłączono SSH.

Kliknij menu Raspberry Pi -> Preferencje -> Uruchom konfigurację Raspberry Pi Przejdź do karty Interfejsy Wybierz Włączone obok SSH Kliknij OK To rozwiązało mój problem. Proszę, daj mi znać.

JAYARAJ SIVADASAN
źródło
-1

z

sudpi@raspberrypi:~$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1817/apache2
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      2227/vsftpd
tcp        0      0 127.0.0.1:3350          0.0.0.0:*               LISTEN      1784/xrdp-sesman
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN      3115/sshd
tcp        0      0 0.0.0.0:3389            0.0.0.0:*               LISTEN      1781/xrdp
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2397/mysqld
użytkownik5673
źródło
To dobry początek, aby sprawdzić, na czym polega problem, ale nie wystarczy odpowiedzieć na pytanie :-(
Morgan Courbet
-1

Miałem ten sam problem, ale został rozwiązany po uruchomieniu polecenia

sudo apt-get remove --purge iptables. i wyłączanie łączności bezprzewodowej.

użytkownik14634
źródło
-1

Istnieją 2 pliki konfiguracyjne / etc / ssh / ssh_config i / etc / ssh / sshd_config

Zmień port z 22 na dowolny w obu plikach.

uruchom ponownie usługę sudo service ssh restart

Adam
źródło
Ale ... zadziała to tylko wtedy, gdy ssh: wejdziesz na tę samą maszynę. Jaki byłby tego sens?
Bex