Локальный Win+Ubuntu: ssh с Win на Ubuntu через Интернет

Локальный Win+Ubuntu: ssh с Win на Ubuntu через Интернет
Локальный Win+Ubuntu: ssh с Win на Ubuntu через Интернет

У меня есть два компьютера, Win10 & Ubuntu 18.04, за маршрутизатором, подключенные к Интернету. На обоих интернет работает нормально. Я хочу дать доступ кому-то для удаленной работы на Ubuntu (не Win). Удаленная работа будет выполняться через x11vnc и программу просмотра VNC. На Ubuntu у меня настроены и готовы OpenSSH и x11vnc.

Прежде чем тестировать VNC, я сначала хочу проверить базовый ssh: по ssh-соединению с Win через Интернет на Ubuntu, как если бы я заходил извне. Пока нет ключей pem, только пароль. Я пытался ssh с Win Powershell на Ubuntu, используя мой внешний IP (как мой маршрутизатор виден снаружи), но все, что я вижу, это мигающий курсор, без запроса на вход. Что нужно для работы ssh с Win на Ubuntu?

Ubuntu:

  1. OpenSSH запущен,
  2. порт ssh разрешен в ufw
  3. Если Win использует 22 порт для ssh, должен ли Ubuntu использовать 23 порт для ssh, чтобы не конфликтовать?

Win:

  1. sh клиент на Win (Powershell)
  2. Известный внешний IP (whatsmyip)

Маршрутизатор: должны ли некоторые порты быть проброшены? Если да, то какие?

Эта информация нужна программному обеспечению маршрутизатора:

  1. выберите IP устройства (Внешний IP? Локальный IP? Если локальный, то маршрутизатор, Win или Ubuntu)?
  2. начальный порт
  3. конечный порт
  4. "удаленный IP и порт" (я предполагаю, что здесь я разрешаю подключаться извне только избранным IP, так что это будет мой внешний IP)

EDIT: ------ больше информации ------

sudo netstat -tulpn | grep ';22' on Ubuntu:
tcp   0   0 0.0.0.0:22   0.0.0.0:*   LISTEN   1158/sshd
tcp6  0   0 :::22        :::*        LISTEN   1158/sshd    

cat /etc/ssh/sshd.config on Ubuntu:
cat: /etc/ssh/sshd.config: No such file or directory

Самый простой способ сделать это - оставить серверы SSH и VNC на системах с настройками по умолчанию и разделить их с помощью проброса портов. Наличие нескольких систем, использующих один и тот же порт в одной сети, не вызывает конфликтов, так как системы прослушивают только порт, а клиенты подключаются, используя IP-адрес.

Внутри сети вы используете внутренние IP, предположим, 192.168.0.10 для Ubuntu. Для SSH из Windows в Ubuntu вы ssh [email protected]. Прежде чем думать о внешнем доступе, правильно настройте внутреннее подключение.

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

Device IP: 192.168.0.10
Starting port: 22
Ending port: 22
Remote IP: blank
Remote port: 10010

Затем вы должны быть в состоянии SSH извне в Ubuntu ssh user@<PublicIP> -p 10010.

Порт по умолчанию для VNC - 5900+N, N - это номер дисплея - обычно он равен 0, поэтому порта 5900 достаточно. Вы можете разрешить доступ к Ubuntu с помощью VNC, создав аналогичные правила проброса портов. Например, вы можете использовать 10590 в качестве удаленного порта и 5900 для начального и конечного порта. Тогда клиент VNC будет подключаться к внутренней системе, используя публичный IP и удаленный порт.

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

Обратите внимание, что для надежности проброса портов необходимо настроить систему Ubuntu со статическим IP-адресом.

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


NevaDev, 3 февраля 2023 г., 13:51