SSH «соединение отказано» на Raspberry pi - не могу найти почему

13

У меня следующая проблема SSH "соединение отказано". Это будет работать нормально, но пока я работаю над SSH, я получаю сообщение «Отказано в соединении», и мне придется заново подключаться (что не происходит в течение хороших 5-10 минут). Я перепробовал все (перезапустите Linux, перезапустите SSH), но до сих пор не помогает. Я также проверил var / log, но ничего полезного там нет ...

ПРИМЕЧАНИЕ. Интересное замечание, которое я обнаружил, заключается в том, что когда я пытаюсь использовать ssh для своего внешнего ip (277 ...), он переходит к черному экрану cmd, я закрываю его и пробую свой адрес 192.168.0.13, и он позволяет мне войти в систему ... но короткий в то время как снова соединение отказалось ... Конечно, если я открою свой сервер и перезагрузлю sudo sshd, мое ssh "соединение отказано" исчезнет ...

Мой порт SSH открыт в 23, и я также настроен на модем / маршрутизатор

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

Когда я отсоединяюсь, снова захожу и проверяю «ВОЗ», я вижу только мое предыдущее соединение, мой root и текущее соединение

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)

Это то, что у меня есть в моем ssh_config, который я изменил (SSH для 23, потому что роджерс использует 22 ...)

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

Это то, что я получаю, когда запускаю 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)

Эта часть, которую я нашел в Интернете, сказала мне, что я должен опубликовать следующие две информации

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

РЕДАКТИРОВАТЬ: pi @ raspberrypi: ~ $ ssh -vvv 192.168.0.13 (Это может быть долго ... Спасибо Барт Фридрихс)

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
pi@192.168.0.13'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
user5673
источник
Запустите netstat -tlpnс правами суперпользователя (или с помощью sudo), если вы хотите увидеть имена программ / PID. Перемещение SSH из порта по умолчанию не является хорошей идеей, если вы недостаточно знакомы с администрированием Linux.
Бруно
1
Строки, начинающиеся с #, являются комментариями, поэтому в строке, в которой вы указываете порт 23, у вас есть # прежде, он не будет обработан, и поэтому он будет использовать стандартный порт (22). Вы также можете указать в /etc/hosts.allow или /etc/hosts.deny что-то, кто может подключаться к sshd. Вы проверили, нет ли в вашей сети конфликта с IP-адресом?
Pipe

Ответы:

8

Вы sshdслушаете порт 23, но вы подключаетесь к порту 22 (по умолчанию ssh).

Попробуй это:

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

Ошибка «отказано в соединении» означает, что уровень TCP в ядре не принимает никаких подключений к этому порту. Это не имеет ничего общего с поддержанием жизни или чем-то еще.

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

Барт Фридрихс
источник
Здравствуйте, спасибо за ваш ответ, я пробовал pi @ raspberrypi: ~ $ nmap -bash: nmap: команда не найдена ... мне нужно ее установить? и есть ли такой для малины? Также спасибо за исправление, я редактировал с -p 23, но там нет ничего, что выглядит неуместно ...
nmapна самом деле не нужен, просто удобный инструмент. Похоже, сделанное вами обновление заставило его работать?
Барт Фридрихс
5

Цитирование документации :

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

Чтобы включить SSH на машинах через консоль:

Войдите sudo raspi-configв терминал, сначала выберите advanced options, затем перейдите к ssh, нажмите Enterи выберите Enable or disable ssh server.

Чтобы включить SSH для безголовых машин:

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


Скопировано из ответа @techraf в этом связанном вопросе: SSH не работает при новой установке .

оборота Дельган
источник
Хотя это технически может ответить на вопрос, я не уверен, что techraf будет счастлив, что вы только что скопировали и вставили их ответ. Однако, если вы спросите их разрешения, прежде чем делать этот пост, это будет по-другому.
Дарт Вейдер
1
Часть «условий предоставления услуг» (раздел 3) заключается в том, что вклады здесь, как считается, имеют лицензию Creative Commons Attribution ShareAlike , и это повторное присвоение соответствует этим условиям. Тем не менее, это не очень хороший ответ здесь, так как он достаточно ясен в вопросе, который sshdработает, и проблема была до 2016 года.
Златовласка
@DarthVader Я разместил это как ответ сообщества, должным образом отметив автора, я думал, что этого будет достаточно.
Дельган
1
@goldilocks Как вы уже догадались, этот вопрос стоит в верхней части результатов поиска Google о том, что ssh connectionxion для Raspberry Pi отказано. Я верил, что это поможет людям быстрее понять, в чем может быть проблема.
Дельган
На текущей новейшей (Raspbian Stretch) конфигурации SSH находится в 5) Параметры
сопряжения
1

У меня была та же проблема этим утром, и я исправил ее, удалив и установив openssh-сервер:

sudo apt-get remove openssh-server 
sudo apt-get install openssh-server
Брайан Люн
источник
Здравствуйте и добро пожаловать в Stack Exchange! Пожалуйста, рассмотрите возможность добавления более подробного объяснения для будущих читателей.
NULL
0

У меня была та же проблема, и мое решение было отключить и удалить iptables.

запустите эти команды:

(как sudoer)

iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P ВХОД ПРИНЯТЬ iptables -P ВЫХОД ПРИНЯТЬ iptables -P ВПЕРЕД ПРИНЯТЬ

sudo apt-get удалить --purge iptables

Jibrilat
источник
0

У меня сработало следующее: пошли в / etc / ssh / ssh_config и / etc / ssh / sshd_config и затем разрешили доступ без пароля.

Перезапустил сервис и вуаля, работает!

Марио Коэльо
источник
0

Обновление ответа Делгана для Raspberry pi 3, РАСПБИЙСКАЯ ДЖЕССИ С PIXEL OS

В терминале

sudo raspi-config 

Выберите Параметры интерфейса -> SSH. Нажмите Enter и выберите Включить или отключить ssh сервер

user65260
источник
0

Я не уверен, будет ли полезен мой совет. У меня была такая же проблема, и я новичок в мире Linux. После прочтения документации Raspberry Pi я обнаружил, что проблема в конфигурации Pi, где SSH был отключен.

Выберите меню Raspberry Pi -> «Настройки» -> «Запустить настройку Raspberry Pi». Перейдите на вкладку «Интерфейсы». Выберите «Включено» рядом с SSH. Нажмите «ОК». Это решило мою проблему. Пожалуйста, попробуйте и дайте мне знать.

ДЖАЯРАЖ СИВАДАСАН
источник
-1

с

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
user5673
источник
Это хорошее начало, чтобы проверить, в чем проблема, но недостаточно, чтобы ответить на вопрос :-(
Морган Курбе
-1

У меня была та же проблема, но она была решена после того, как я выполнил команду

sudo apt-get remove --purge iptables, и отключение беспроводной связи.

user14634
источник
-1

Есть 2 конфигурационных файла / etc / ssh / ssh_config и / etc / ssh / sshd_config

Измените порт с 22 на то, что вы хотите в обоих файлах.

перезапустите сервис sudo service ssh restart

Адам
источник
Но ... это будет работать, только если ваш ssh: на той же машине. Какой в ​​этом смысл?
Bex