Удаленный вход в систему Linux, IP-адрес неизвестен
Я буду физически отправлять нетбук Linux на удаленный сайт, где он будет подключен к Интернету. Я понятия не имею, публичный IP-адрес.
Я должен быть в состоянии безопасно войти в систему. Какой лучший способ сделать это? Я думаю, что нужно как-то транслировать идентификатор (dyndns? Бесплатные опции?). Все это должно быть предварительно настроено перед отправкой.
Я более чем счастлив исследовать самостоятельно, но я был бы благодарен за то, что кто-то может указать мне правильное направление.
С Уважением,
Обновление - мне нужен только консольный доступ, и это Ubuntu
1 ответ
Поскольку система может находиться за NAT или межсетевым экраном, вы не сможете гарантировать какое-либо подключение. Даже если вы знали его общедоступный IP-адрес, маловероятно, что вы сможете инициировать соединение с ящиком извне.
Таким образом, следующая лучшая вещь состоит в том, чтобы сам бокс инициировал соединение с одним или несколькими известными серверами. Исходящее соединение имеет гораздо больше шансов обойти любые межсетевые экраны и важно для прохождения NAT.
Чтобы это работало, вам понадобится сервер с некоторым процессом, который прослушивает соединения по фиксированному адресу и порту и готов переадресовывать ваши сеансы SSH на любое такое соединение. Сама коробка должна будет периодически пытаться установить исходящее соединение с этим сервером, возможно, ежечасно.
Простейшим будет иметь скрипт /etc/rc.init (или любой другой эквивалент в вашем конкретном дистрибутиве Linux), который периодически пытается установить ssh-туннель. Это может выглядеть примерно так:
ssh -i remotekey.pem -R 33333:localhost:22 user@my.server.com
Предполагается, что вы настроили "пользователя" для входа на основе ключа, используя "remotekey.pem" на вашем сервере. Затем с вашего сервера вы бы войти в удаленный ящик, используя
ssh -p 33333 boxuser@localhost
Это предполагает, что "boxuser" является действительным пользователем на вашем удаленном ящике.