Установите общий терминал между двумя ПК через Интернет

Мой компьютер и мой друг находятся в двух разных локальных сетях, каждый из которых подключен к Интернету через маршрутизатор. Каждая ЛВС имеет только один IP-адрес, который временно предоставляется провайдером. Какие проблемы мы должны преодолеть, чтобы установить ситуацию, в которой каждый из нас может видеть терминал другого пользователя и печатать на нашем ПК?

В дополнение к упоминанию препятствий, какие условия вы бы предложили найти, чтобы справиться с этой ситуацией?

2 Solutions collect form web for “Установите общий терминал между двумя ПК через Интернет”

Чтобы обойти временное распределение IP-адресов, вам нужно посмотреть динамический DNS. Найдите регистратора доменов, который поддерживает динамический DNS, затем каждый из вас зарегистрирует имя домена и следуйте инструкциям регистратора для настройки автоматического обновления вашего IP-адреса. Это позволит вам подключиться к компьютеру вашего друга (или наоборот), не беспокоясь о истечении срока действия IP-адреса, поскольку имя домена всегда будет указывать на назначенный в настоящий момент адрес.

На стороне локальной сети каждому из вас потребуется установить свой компьютер на статический внутренний IP-адрес, если вы еще этого не сделали. Детали того, как это сделать, зависят от того, какой дистрибутив вы используете. Например, внутренний IP-адрес моего маршрутизатора – 192.168.1.1, и он назначает адреса в диапазоне от 192.168.1.100 до 192.168.1.199 клиентам DHCP в моей домашней сети. На моем компьютере Debian, который я хочу иметь доступ из-за пределов локальной сети, я настроил свой основной адаптер ethernet в /etc/network/interfaces со статическим адресом вне диапазона DHCP маршрутизатора, например:

 allow-hotplug eth0 auto eth0 iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1 

Затем в настройках брандмауэра маршрутизатора я включил переадресацию портов для TCP-порта 22 (порт SSH по умолчанию) во внутренний адрес 192.168.1.10 (статический адрес компьютера).

Прежде чем вы откроете этот порт для мира, позаботьтесь о нескольких шагах, чтобы смягчить атаки SSH:

  • Не разрешайте вход root в SSH. ( PermitRootLogin no в вашем файле конфигурации sshd.)
  • Разрешать подключения только для определенного (не root-и непривилегированного) пользователя. ( AllowUsers my_user_id your_user_id в вашем конфигурационном файле sshd.) Для этого вы можете указать свой собственный идентификатор пользователя и ваш друг или создать отдельную учетную запись пользователя специально для этой цели. Важно то, что вы не разрешаете соединения с идентификаторами пользователей, которые обычно создаются крупными пакетами (например, mysql, www-data), которые могут иметь пароли по умолчанию. Это простые цели для сценаристов.
  • Используйте надежный пароль для учетных записей, перечисленных в приведенном выше шаге.
  • В качестве альтернативы посмотрите на ssh-keygen чтобы избежать необходимости использовать пароль, как только обе системы аутентифицировались друг с другом.
  • Установите некоторое программное обеспечение, которое блокирует запросы на соединение с данного удаленного хоста после некоторого количества сбоев. Для этого я использую fail2ban, и он работает хорошо.

Теперь вы должны иметь возможность подключаться к компьютеру друг друга, что просто оставляет вам требование об обмене терминалом. Вот где входит GNU Screen . Кто бы ни принимал сессию, просто нужно запустить терминал, запустить экран и включить многопользовательский режим, чтобы другой человек мог присоединиться к сеансу. (См. Справочную страницу экрана для получения подробной информации о включении многопользовательского режима.) После этого вы или один из них можете отключиться, не убивая сеанс экрана, и снова подключиться к нему в любое другое время. Даже если интернет-провайдер изменит ваш IP-адрес (для любого из вас), таким образом, убив ваше соединение, вы можете снова подключиться после обновления DNS-записи и снова присоединиться к той же сессии.

Вы не указали причину, по которой вам нужно это сделать, поэтому у моего ответа может не быть необходимого вам решения. Но самым простым способом обмена терминалом с другим пользователем является использование tmate , являющегося вилкой tmux.

Tmate позволяет вам начать сеанс (открыть терминал и запустить tmate), который предоставит вам 2x строки подключения; прочитайте запись (где другой человек может вводить команды) или только для чтения (другой человек может видеть только то, что вы набираете).

Преимущества заключаются в том, что, как только у вас установлен tmate на серверной машине, вам не нужно открывать какие-либо порты или устанавливать VPN. Недостаток заключается в том, что установка не очень проста (не слишком сложна), и я не тонки, вы можете передавать файлы.

Вот краткое демонстрационное видео tmate в действии – https://www.youtube.com/watch?v=is_VpIx3Z4M

  • OpenSSH - псевдонимы карт в ~ / .ssh / config для IP-адресов в командной строке
  • настроить безопасное соединение через SSH
  • не может найти текущий процесс, который я начал с SSH вчера
  • SSH: проинструктировать задний туннель для выхода по сломанной трубе?
  • Нет пути к хосту с использованием ssh
  • если условие с ssh выходит во время цикла без завершения
  • Linux TOTP vs SSH Keys
  • Настройка ssh отпечатков пальцев на dns для замены known_hosts не выполняется
  • SSH удаленное выполнение использования ресурсов программы?
  • Не удается найти исполняемый файл для пользователя без root по ssh
  • Тюрьма в chroot в debian 7.5 - Проблема разделения привилегий
  • Linux и Unix - лучшая ОС в мире.