У меня есть рабочий стол и ноутбук в одной локальной сети, обе работают под управлением Ubuntu 16.04 x64. На обоих серверах установлены и работают openssh и openssh-сервер. На обоих ssh 'to localhost работает отлично, и ни на одном ssh не работает другая машина, отказ в connection refused . Чтобы быть более точным, ssh me@192.168.x.x приводит к той же ошибке, хотя ip - одна из машин, на которых я пытаюсь это сделать. Каждая машина может ping другую. Оба используют открытые ключи для аутентификации. sftp , telnet и ssh-copy-id не работают с одной и той же ошибкой. В меру своих возможностей я пытался проверить, что никакие брандмауэры ни на одной машине не блокируют трафик ssh (но здесь приветствуются дополнительные тесты).

Что я могу делать не так и как я могу исправить эту проблему?

Я с удовольствием предоставлю результаты для любых соответствующих проверок.

2 ответа2

1

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

На одной машине мы назовем это pcA, откроем терминал и выполним следующую команду:

/usr/sbin/sshd -d -p 2222

На другом компьютере с Linux, pcB, введите эту команду и просмотрите выходные данные сервера на pcA:

ssh -vv -p 2222 [IP Address of pcA]

То, что мы здесь делаем, это запускаем версию «переднего плана» демона ssh на pcA, прослушиваем соединения через порт 2222, работаем в режиме отладки (подробный). На pcB мы пытаемся подключиться к pcA в качестве ssh-клиента через порт 2222 в подробном режиме.

  • Как pcA, так и pcB будут выводить текст, указывающий поток процесса соединения, как они его видят.

  • Обычно результатов достаточно, чтобы сделать разрешение очевидным, например, разрешения для вашего каталога ~/.ssh.

    Пара советов:

    Если сервер не видит абсолютно никакой попытки соединения с pcB, то у вас есть проблема с брандмауэром или сетевой маршрутизацией. В этом случае попробуйте выполнить сканирование сети на том же порту с печатной платы, используя nmap: nmap -p 2222 [ip address pcA]

    Вы также можете вызвать nmap с синтаксисом nmap -A [ip address pcA] для общего сканирования (включая порт std sshd (22) и информацию о трассировке. Это может указывать на то, где что-то сбрасывается (межсетевой экран маршрутизатора?)

  • Если это не очевидно, опубликуйте результаты как от клиента, так и от сервера в вашем вопросе.

Обновить

Запустите команду netstat -tulpn на pcA, чтобы увидеть, что прослушивает какие порты на этом компьютере. Это даст вам вывод, как это:

Proto Recv-Q  Send-Q   Local Address       Foreign Address      State    PID/Program name
tcp     0       0      0.0.0.0:22            0.0.0.0:*          LISTEN     1133/sshd
tcp6    0       0      :::22                 :::*               LISTEN     1133/sshd
udp     0       0      0.0.0.0:68            0.0.0.0:*                     722/dhclient

Если вы запускаете его, и sshd работает нормально на порту 22. Опубликуйте, что вы получите в ответ на эту команду на pcA.

2-е обновление. Увидел ваш ответ - на что раньше был установлен ListenAddress? Обычно по умолчанию используется 0.0.0.0 (это ЛЮБОЙ адрес), и с ним проблем нет.

0

Хорошо, я только что вручную добавил ip - адреса своих машин в строки ListenAddress /etc/ssh/sshd_config . Плюсы: я могу, наконец, SSH. Минусы: это, вероятно, ужасный не поддающийся проверке хак если мне когда-нибудь понадобится подключить ssh к моей машине за пределами локальной сети, я, вероятно, столкнусь с реальными проблемами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .