Подключитесь к серверу (у него нет внешнего IP) по SSH

Подключитесь к серверу (у него нет внешнего IP) по SSH

Я настроил небольшой ПК как сервер Ubuntu и настроил ssh-сервер, чтобы иметь возможность подключаться к нему по ssh. Проблема начинается здесь, потому что у меня нет внешнего IP, предоставленного моим провайдером (все устройства имеют 1 внешний IP), и я не могу его изменить. Поэтому, основываясь на проведенном мной исследовании, я создал экземпляр AWS бесплатного уровня и создал там OpenVPN.

У меня это работает примерно так:

  1. ПК1
  2. Экземпляр AWS с внешним IP-адресом, на котором размещен сервер OpenVPN
  3. ПК2

PC1 и PC2 подключены к серверу OpenVPN на AWS, и затем я могу подключиться к PC1 по SSH с помощью PC2.
Какие у меня есть варианты (если таковые имеются) для подключения к PC1 по SSH с помощью PC2 без необходимости подключения PC2 к OpenVPN или, может быть, есть какой-то вариант подключиться к OpenVPN только для подключения по ssh, а для остального трафика не использовать OpenVPN?

решение1

Я ничего не знаю об OpenVPN. Со своей стороны я использую туннель SSH. Основы довольно просты, но полная настройка может быть довольно сложной. При этом вы можете иметь любое количество компьютеров, которые будут туннелировать (что быстро, если вы не пытаетесь использовать все туннели одновременно).

ssh -fNR 2222:localhost:22 aws-computer

Это aws-computerимя в моем ~/.ssh/configфайле, которое определяет используемый ключ и имя пользователя/пароль.

Теперь, когда я подключаюсь по ssh, aws-computerя могу использовать:

ssh -p 2222 pc1

и он подключается так, как будто у меня есть одно обычное SSH-подключение.

Вы можете повторять туннелирование столько раз, сколько захотите, что означает, в конце концов, вы можете сделать одно ssh pc2с ПК1 и одно ssh pc1с ПК2. Это просто небольшая настройка, чтобы все заработало.

Host aws-computer
  HostName <ip-address-or-domain-name>
  User name
  Port 22
  PasswordAuthentication no
  HostbasedAuthentication no
  IdentitiesOnly yes
  IdentityFile /home/name/.ssh/tunnel_keys/tunnel_rsa

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

Главное ограничение заключается в том, что вам нужно использовать разные порты (т. е. вы не можете иметь две службы на одном компьютере, используя один порт). Другое ограничение заключается в том, что один из компьютеров должен иметь статический IP-адрес или вам нужно сделать доступным сервер доменных имен, который записывает IP-адреса. Такой DNS не очень безопасен, поскольку кто-то другой может получить «ваш» старый IP-адрес, и ваши системы могут попытаться подключиться через сторонний компьютер.

Связанный контент