Локальная машина имеет публичный IP.
Удаленный компьютер работает на клиентском сайте. У меня есть полный доступ к этой машине, но у нее нет публичного IP-адреса. В настоящий момент мы используем TeamViewer для удаленного доступа к этой машине, но мы предпочли бы использовать решение на основе x11vnc.
Есть ли какой-то демон или программное обеспечение, которое я могу запустить на удаленном компьютере, чтобы при загрузке я мог подключиться к нему по ssh (возможно, через туннель?).
(123.45.6.78)
local .-,( ),-.
__ _ .-( )-. Remote
[__]|=| ---->( internet )-------> __________ ------> ____ __
/::/|_| '-( ).-' [_...__...°] | | |==|
'-.( ).-' |____| | |
/::::/ |__|
Приведенное ниже решение будет работать следующим образом:
Local .-,( ),-.
__ _ .-( )-. Gateway RemoteX
[__]|=| ---->( internet )-------> __________ ------> ____ __
/::/|_| '-( ).-' [_...__...°] | | |==|
'-.( ).-' |____| | |
/::::/ |__|
Вы можете сделать это через ssh ProxyCommand
объект. Добавьте следующее в свой $HOME/.ssh/config
файл. Создайте его, если он не существует, только с этим содержимым:
Host RemoteX
User userint
ProxyCommand ssh userext@Gateway nc RemoteX %p
Host RemoteY
User userint
ProxyCommand ssh userext@Gateway nc RemoteY %p
Затем вы подключаетесь к различным внутренним удаленным серверам следующим образом:
$ ssh RemoteX
-or-
$ ssh RemoteY
Это верхушка айсберга. Посмотрите эти вопросы и ответы U&L под названием: SSH-туннель через сервер-посредник - как подключиться за один шаг (используя пару ключей)?, Больше подробностей.
НОТА: Вышеупомянутый метод использует инструмент под названием nc
(netcat), который должен быть в репозиториях любых основных дистрибутивов.
Один Host
строфа, много хозяев.
Host *.mydom.com *
ProxyCommand ssh externalserver nc %h %p
Одна строфа `Hosts для многих пользователей.
Добавить Hosts
строфа к системе /etc/ssh/ssh_config
файл, чтобы любой, кто входит в систему, мог им воспользоваться.
Если у вас есть ситуация, когда системы на "удаленном" конце колеблются, вы можете использовать служба динамического DNS (DDNS) Такие как noip. Таких сервисов десятки, некоторые бесплатные, а некоторые платные.
Основная идея этих сервисов заключается в том, что они дают вам статическое имя, например me.noip.org
и вы запускаете небольшой инструмент-демон на "удаленном" клиенте. В вашем случае это может быть система шлюза или даже одна из удаленных систем. Этот демон получит IP-адрес шлюза, который в настоящее время назначен в Интернете, и ретранслирует его в службу DDNS, которая затем внесет его в список как текущий IP-адрес для me.noip.org
. По мере изменения он будет обновляться с течением времени.