SSH не работает

10

Я не могу ssh в мой пи. RPI подключен напрямую к моему хосту.

Я установил IP-адрес своего хоста: ----

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

Pi имеет IP-адрес по умолчанию в файле сетевых интерфейсов как: ----

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

если команда config на моем ПК: -----

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)

Пинг работает на том же хосте: ----

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

Пинг работает на пи с моего компьютера: ----

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 не работает

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

ignite@ignite-desktop:~$ ssh pi@192.168.0.202
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

Подскажите пожалуйста, как это решить?

edit: ---
ssh -vvv pi@192.168.0.202 ---> вывод

ignite@ignite-desktop:~$ ssh -vvv pi@192.168.0.202
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
Аллан
источник
1
Вы проверили, что демон ssh работает?
Коди
на самом деле у меня нет экрана HDMI и я использовал свой удаленный настольный компьютер для входа в систему с помощью ssh. Теперь, как я могу проверить это?
Аллан
PS Aux | grep sshd
коди
Если sshd запущен, в выводе будет показан процесс (ы) sshd. Кроме "grep sshd", который мы только что запустили, конечно.
Коди

Ответы:

5

У меня была та же проблема с недавно установленным raspbian, и проблема была с ключами хоста ssh на стороне сервера.

Эти ключи не генерируются на образе по тем причинам, что каждое устройство должно иметь разные ssh-ключи, и во время первой загрузки эти ключи генерируются автоматически.

Моя проблема заключалась в том, что, вероятно, во время генерации этих ключей я отключал питание, они были неправильными с нулевым размером.

Решение состоит в том, чтобы восстановить ключи хоста на стороне сервера ssh:

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

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

Влк
источник
2
Как восстановить ключи хоста на стороне сервера ssh (dpkg-переконфигурировать openssh-сервер), если они не могут войти в систему?
Хайри Угур Колтук
Точно @ HayriUğurKoltuk Я на Mac, как я могу это сделать?
ясный свет
4

Причина проблемы и исправления

Без специальных программ вы не можете войти в Pi, используя имя хоста. Для сетей локальной сети, пинг хоста. Когда у вас есть IP, запишите его. Затем напишите в терминал:

ssh pi@this_is_the_ip

и вы должны быть в состоянии войти.

Если вы хотите получить доступ к Pi из-за пределов вашей домашней сети, вы должны перенаправить маршрутизатор. На самом деле, существует вопрос обмена стека о том, как это сделать.

Предполагая, что вы все еще хотите использовать хорошее имя для своего Pi, есть один вариант, который будет работать как внутри вашей сети, так и без нее.

DNSDynamic

Это программное обеспечение позволяет вам настроить доменное имя для вашего пи.

  1. Зайдите на их сайт и настройте доменное имя и учетную запись.

  2. Установите ddclientна свой Pi.

    sudo apt-get install ddclient 
    

    А затем отредактируйте настройки конфига.

    sudo nano /etc/ddclient.conf
    

    Наконец, измените файл следующим образом:

# /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

login=x@gmail.com  #userid for dnsdynamic.com

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

x.dnsdynamic.com  #the domain name you created

Предполагая, что вы хотите, чтобы он запускался автоматически каждый раз, когда ваш компьютер просыпается, введите в терминал следующее.

sudo nano /etc/rc.local

Добавьте следующую команду перед exit 0(которая является последней строкой)

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

Наконец, вы все еще должны portforward.

Надеюсь, это полезно. Задайте вопросы в разделе комментариев ниже.

xxmbabanexx
источник
На самом деле я скомпилировал и установил последнюю версию openssl для моей целевой RPi. Теперь SSH у меня не работает. Зависит ли SSH от OpenSSL?
Аллан
SSL (уровень защищенных сокетов) не требуется для запуска SSH. Это может быть проблема в этой настройке. Но, пожалуйста, попробуйте использовать локальный IP-адрес Pi вместо его имени хоста.
xxmbabanexx
я отправил о / п для -----> ssh -vvv pi@192.168.0.202 ---> можете ли вы предложить, в чем проблема
Аллан
я восстановил ключи на моем хосте и цели ... удалил известный файл хоста из ~ / .ssh ... это сработало ...
Аллан
удалить все файлы из: --- / etc / ssh ----> кроме shh_config ---> и изменить конфигурацию ssh согласно этой ссылке ---> blog.harshadura.net/2012/01/…
Аллан
0

Вы можете взглянуть на мой ответ на эти вопросы.

Как получить IP-адрес Raspberry Pi для SSH

Еще одна возможность, о которой я не упомянул, это купить домен (это очень дешево) и поиграть с DNS. Я купил домен aasgard.infoза 0,99 цента и присвоил имя ygdrasill.aasgard.infoвнутреннему адресу ( 192.168.1.141в данном случае). Затем вам нужно установить домен по умолчанию в качестве купленного вами доменного имени и вуаля :)

Должен признаться, что, потратив все время на настройку домена, я понял, что использовать файл / etc / hosts или avahi намного проще :)

Remo.D
источник
0

Вы уверены, что вы запустили SSH-сервер на Raspberry Pi? То, что вы можете пропинговать, не означает, что на нем работает SSH-сервер. Попробуйте sshdиспользовать легкий SSH-сервер.

user1945104
источник
0

Включить SSH

Начиная с выпуска ноября 2016 года Raspbian по умолчанию отключил SSH-сервер.

Это может быть включено вручную из терминала:

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

или

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

Или используйте systemctl для запуска сервиса

sudo systemctl enable ssh
sudo systemctl start ssh
Noufal
источник
-1

Соединение SSH по умолчанию отключено в последней версии Raspberry Pi. RPi, выпущенные в / после ноября 2016 года.

Шаги: 1) Запишите распбианое изображение на SD-карту. 2) создать файл ssh без расширения. 3) скопируйте этот файл ssh на SD-карту, на которой написано ваше изображение. 4) Наконец, вы сможете использовать SSH для вашего малинового пи.

Для получения дополнительной информации посмотрите это видео: https://www.youtube.com/watch?v=zKT6bTESlLs

Рахул Моди
источник
2
Добро пожаловать в Raspberry Pi! Пожалуйста, возьмите тур и посетите справочный центр, чтобы увидеть, как все работает здесь. Обратите внимание, что этот вопрос относится к 2013 году. Тогда проблема, которую вы описываете, вообще не была проблемой ...
Ганима