Невозможно SSH из-за пределов локальной сети, несмотря на то, что переадресация портов выглядит нормально

8

Запустив Ubuntu 12.04, я настроил сервер OpenSSH. Я могу подключиться изнутри локальной сети, но не снаружи. Я использую тот же sshd_configфайл, что и на других машинах с Ubuntu 12.04 (которые находятся в другой локальной сети).

$ ssh 192.168.0.2

работает нормально, но

$ ssh 65,76,97,222

(составленный IP-адрес) не работает. Ничего не произошло. Нет сообщения об ошибке или что-нибудь. Приглашение просто сидит там.

Благодаря комментариям ниже, мне удалось проверить через веб-сайты canyouseeme.org и ShieldsUP, что порт 22 действительно открыт.

Используя опцию -vvv, я получаю следующее:

$ ssh -vvv 65.76.97.222
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 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 65.76.97.222 [65.76.97.222] port 22.
debug1: Connection established.
debug1: identity file /home/myname/.ssh/id_rsa type -1
debug1: identity file /home/myname/.ssh/id_rsa-cert type -1
debug1: identity file /home/myname/.ssh/id_dsa type -1
debug1: identity file /home/myname/.ssh/id_dsa-cert type -1
debug1: identity file /home/myname/.ssh/id_ecdsa type -1
debug1: identity file /home/myname/.ssh/id_ecdsa-cert type -1

И тогда подсказка просто сидит там.

Дополнительная отладочная информация от var/log/auth.log:

$ grep sshd /var/log/auth.log
[cutting old lines...]    
Jul  6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222

Я разрешаю любому пользователю подключаться, в частности, мое собственное имя пользователя. Что меня смущает, так это то, что у меня не было этой проблемы ни на одной другой машине, хотя они находятся на другой локальной сети. К этой локальной сети подключен только один компьютер. Есть идеи, как действовать дальше?

DustByte
источник
попробуйте использовать подробный вариант ( -v, -vvк -vvv) , чтобы получить дополнительную информацию: Re: подключение. например, ssh -vvv -p 51555 65.76.97.222.
АМС
проверьте порт переадресации canyouseeme.org
hwez
Спасибо, я отредактировал свой вопрос, чтобы отразить ваши комментарии.
DustByte

Ответы:

3

Несколько вещей для вас, чтобы проверить.

  1. Проверьте /etc/ssh/sshd_configи убедитесь, что у вас нет забавных AllowUsersзаписей.

  2. Укажите пользователя, которого вы хотите подключить как:

    ssh USER@SERVER
    ssh SERVER -lUSER
    
  3. Проверьте свой брандмауэр ( iptables):

    sudo iptables -L --line-numbers
    sudo iptables -L -t nat --line-numbers
    
Phobos
источник
2

Убедитесь, что ваш шлюз на сервере SSH настроен на маршрутизатор, выполняющий переадресацию портов.

route -n

Маршрут по умолчанию должен указывать на этот маршрутизатор, в противном случае вы сможете инициировать соединения через него, но ACK никуда не денутся!

Grizly
источник
1

Нужно проверить, что переадресация портов работает правильно. Обычно я проверяю это, перейдя по адресу https://www.grc.com/shieldsup > Продолжить>, введите номер своего порта в поле и нажмите указанный пользователем порт. Это должно сказать вам, если этот порт TCP на самом деле открыт для общественности

meccooll
источник
Спасибо. Я отредактировал свой вопрос, чтобы отразить ваше предложение. Проблема остается однако.
DustByte
Да, сеть исключена, поэтому выглядит как проблема с конфигурацией. Попробуйтеgrep sshd /var/log/auth.log
meccooll
Затем добавляется следующая строка auth.log:Jul 6 10:23:05 mymachine sshd[7871]: Did not receive identification string from 65.76.97.222
DustByte
1

Вы объявляете пользователя?

ssh Jimmy@65.76.97.222 -p51555

Если вы дали код так, как вы его используете, то я считаю, что он по умолчанию будет соответствовать текущему имени пользователя.

Кроме того, вам нужно иметь пользователя в системе TARGET с разрешением. в приведенном выше примере "Джимми"

wlraider70
источник
У меня действительно есть. Я подключаюсь только к одному и тому же пользователю все время, и, кроме того, sshd_configразрешает подключаться любому пользователю.
DustByte