ssh nie działa

10

Nie jestem w stanie ssh do mojego pi. RPI jest podłączony bezpośrednio do mojego komputera.

Ustawiłem adres IP mojego hosta: ----

sudo ifconfig eth0 192.168.0.204 netmask 255.255.255.0 up
sudo route add default gw 192.168.0.200

Pi mają domyślny adres IP w pliku interfejsów sieciowych jako: ----

auto lo eth0
iface lo inet loopback
iface eth0 inet static
    address 192.168.0.202
    netmask 255.255.255.0
    gateway 192.168.0.200

jeśli polecenie konfiguracji na moim komputerze: -----

ignite@ignite-desktop:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 6c:f0:49:f3:a6:1b  
          inet addr:192.168.0.204  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::6ef0:49ff:fef3:a61b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:681 errors:0 dropped:0 overruns:0 frame:0
          TX packets:208 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:43752 (43.7 KB)  TX bytes:33407 (33.4 KB)
          Interrupt:26 Base address:0x4000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1012 (1.0 KB)  TX bytes:1012 (1.0 KB)

Ping działa dla tego samego hosta: ----

ignite@ignite-desktop:~$ ping 192.168.0.204
PING 192.168.0.204 (192.168.0.204) 56(84) bytes of data.
64 bytes from 192.168.0.204: icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from 192.168.0.204: icmp_seq=2 ttl=64 time=0.018 ms
64 bytes from 192.168.0.204: icmp_seq=3 ttl=64 time=0.017 ms
64 bytes from 192.168.0.204: icmp_seq=4 ttl=64 time=0.014 ms

Ping pracuje dla pi z mojego komputera: ----

ignite@ignite-desktop:~$ ping 192.168.0.202
PING 192.168.0.202 (192.168.0.202) 56(84) bytes of data.
64 bytes from 192.168.0.202: icmp_seq=1 ttl=64 time=0.530 ms
64 bytes from 192.168.0.202: icmp_seq=2 ttl=64 time=0.508 ms
64 bytes from 192.168.0.202: icmp_seq=3 ttl=64 time=0.464 ms
64 bytes from 192.168.0.202: icmp_seq=4 ttl=64 time=0.445 ms
64 bytes from 192.168.0.202: icmp_seq=5 ttl=64 time=0.434 ms

SSH nie działa

ignite@ignite-desktop:~$ ssh pi@raspberrypi
ssh: Could not resolve hostname raspberrypi: Name or service not known

ignite@ignite-desktop:~$ ssh [email protected]
Read from socket failed: Connection reset by peer

ignite@ignite-desktop:~$ ssh 192.168.0.202 -l pi
Read from socket failed: Connection reset by peer

Proszę zasugerować, jak to rozwiązać?

edit: ---
ssh -vvv [email protected] ---> wyjście jest

ignite@ignite-desktop:~$ ssh -vvv [email protected]
OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.0.202 [192.168.0.202] port 22.
debug1: Connection established.
debug1: identity file /home/ignite/.ssh/identity type -1
debug1: identity file /home/ignite/.ssh/id_rsa type -1
debug1: identity file /home/ignite/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-2
debug1: match: OpenSSH_6.0p1 Debian-2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-6ubuntu2
debug2: fd 3 setting O_NONBLOCK
debug1: SSH2_MSG_KEXINIT sent
Read from socket failed: Connection reset by peer
Allan
źródło
1
Czy sprawdziłeś, że demon ssh działa?
codey
właściwie nie mam ekranu HDMI i korzystałem z mojego komputera stacjonarnego, aby zalogować się do pi za pomocą ssh. Jak mogę to sprawdzić?
Allan
ps aux | grep sshd
codey
Jeśli sshd jest uruchomiony, dane wyjściowe pokażą proces (y) sshd. Oczywiście oprócz „grep sshd”, który właśnie uruchomiliśmy.
codey

Odpowiedzi:

5

Miałem ten sam problem z nowo zainstalowanym Raspbianem i problem dotyczył kluczy hosta ssh po stronie serwera.

Te klucze nie są generowane na obrazie z tego powodu, że każde urządzenie musi mieć różne klucze ssh, a podczas pierwszego rozruchu klucze te są generowane automatycznie.

Mój problem polegał na tym, że prawdopodobnie podczas generowania tych kluczy odłączam zasilanie, były one błędne przy zerowym rozmiarze.

Rozwiązaniem jest ponowne wygenerowanie kluczy hosta po stronie serwera ssh:

rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server

https://wiki.debian.org/SSH#Regenerating_host_keys

vlk
źródło
2
jak zregenerować klucze hosta po stronie serwera ssh (dpkg-reconfigure openssh-server), jeśli nie mogą się zalogować?
Hayri Uğur Koltuk
Dokładnie @ HayriUğurKoltuk Jestem na komputerze Mac, jak mogę to zrobić?
Clearlight
4

Powód wydania i naprawy

Bez specjalnych programów nie można ssh do Pi przy użyciu jego nazwy hosta. W przypadku sieci LAN sprawdź ping hosta. Po uzyskaniu adresu IP zapisz go. Następnie napisz do terminala:

ssh pi@this_is_the_ip

i powinieneś być w stanie się zalogować.

Jeśli chcesz uzyskać dostęp do Pi poza siecią domową, musisz przekierować router. W rzeczywistości istnieje pytanie dotyczące wymiany stosu, jak to zrobić.

Zakładając, że nadal chcesz używać ładnej nazwy dla swojego Pi, istnieje jedna opcja, która będzie działać zarówno w twojej sieci, jak i bez niej.

DNSDynamic

To oprogramowanie pozwala skonfigurować nazwę domeny dla twojego pi.

  1. Wejdź na ich stronę internetową i skonfiguruj nazwę domeny i konto.

  2. Zainstaluj ddclientna swoim Pi.

    sudo apt-get install ddclient 
    

    A następnie edytuj ustawienia konfiguracji.

    sudo nano /etc/ddclient.conf
    

    Na koniec zmień plik na następujący:

# /etc/ddclient.conf

daemon=600

timeout=10

ssl=yes

protocol=dyndns2

use=web, web=myip.dnsdynamic.com #Enter your URL here

server=www.dnsdynamic.org

[email protected]  #userid for dnsdynamic.com

password='xxxx'      #password for the same put inside quotes

x.dnsdynamic.com  #the domain name you created

Zakładając, że chcesz, aby uruchamiało się ono automatycznie za każdym razem, gdy komputer się budzi, wpisz następujące polecenie w terminalu.

sudo nano /etc/rc.local

Dodaj następujące polecenie wcześniej exit 0(który jest ostatnim wierszem)

sudo /usr/sbin/ddclient -daemon 600 -syslog

Na koniec musisz nadal przekazywać.

Mam nadzieję, że jest to pomocne. Zadaj pytania w sekcji komentarzy poniżej.

xxmbabanexx
źródło
Właściwie skompilowałem i zainstalowałem najnowszy openssl do mojego docelowego RPi. Teraz ssh nie działa dla mnie Czy ssh zależy od openssl?
Allan
SSL (warstwa bezpiecznych gniazd) nie jest potrzebny do uruchomienia SSH. To może być problem w tej konfiguracji. Ale spróbuj użyć lokalnego adresu IP Pi zamiast jego nazwy hosta.
xxmbabanexx
Wysłałem o / p dla -----> ssh -vvv [email protected] ---> Czy możesz zasugerować, na czym polega problem
Allan
zregenerowałem klucze na moim hoście i celu .. usunąłem znany plik hosta z ~ / .ssh ... zadziałało ...
Allan
usuń cały plik z: --- / etc / ssh ----> oprócz shh_config ---> i zmieniłem konfigurację ssh zgodnie z tym linkiem ---> blog.harshadura.net/2012/01/...
Allan
0

Możesz spojrzeć na moją odpowiedź na te pytania.

Jak uzyskać adres IP Raspberry Pi dla SSH

Inną możliwością, o której nie wspomniałem, jest zakup domeny (jest bardzo tania) i gra z DNS. Kupiłem domenę aasgard.infoza 0,99 centów i przypisałem nazwę ygdrasill.aasgard.infodo wewnętrznego adresu ( 192.168.1.141w tym przypadku). Następnie musisz ustawić domyślną domenę jako nazwę domeny, którą kupiłeś i voila ':)

Muszę wyznać, że po spędzeniu całego czasu na konfiguracji domeny zdałem sobie sprawę, że użycie pliku / etc / hosts lub avahi było o wiele łatwiejsze :)

Remo.D
źródło
0

Czy na pewno masz uruchomiony serwer SSH na swoim Raspberry Pi? To, że możesz pingować, nie oznacza, że ​​działa serwer SSH. Wypróbuj sshdlekki serwer SSH.

użytkownik1945104
źródło
0

Włącz SSH

Od wydania z listopada 2016 r. Raspbian domyślnie wyłącza serwer SSH.

Można go włączyć ręcznie z poziomu terminala:

sudo raspi-config
Select Interfacing Options
Navigate to and select SSH
Choose Yes
Select Ok
Choose Finish

lub

Launch Raspberry Pi Configuration from the Preferences menu
Navigate to the Interfaces tab
Select Enabled next to SSH
Click OK

Możesz też użyć systemctl, aby uruchomić usługę

sudo systemctl enable ssh
sudo systemctl start ssh
Noufal
źródło
-1

Łączność SSH jest domyślnie WYŁĄCZONA w najnowszej wersji Raspberry Pi. RPi wydane w / po listopadzie 2016 r.

Kroki są następujące: 1) Zapisz obraz raspbian na karcie SD. 2) utwórz plik ssh bez rozszerzenia. 3) skopiuj ten plik ssh na kartę SD, na której zapisany jest twój obraz. 4) Nareszcie będziesz mógł SSH malinowo pi.

Aby uzyskać więcej informacji, obejrzyj ten film: https://www.youtube.com/watch?v=zKT6bTESlLs

Rahul Modi
źródło
2
Witamy w Raspberry Pi! Proszę wziąć wycieczkę i odwiedzić HelpCenter , aby zobaczyć, jak działają tutaj rzeczy. Zauważ, że to pytanie pochodzi z 2013 roku. Wtedy opisany przez ciebie problem wcale nie był problemem ...
Ghanima