Я недавно установил Ubuntu Server 12.04 (Precise Pangolin) и собираюсь использовать его в основном в качестве файлового сервера. Я совершенно новичок в Linux, так что это довольно большая кривая обучения. Вчера я смог настроить PuTTY на своем компьютере с Windows 7, используя пару ключей SSH, чтобы я мог администрировать Ubuntu Server со своего рабочего стола. Это работает нормально при условии, что обе машины находятся в одной сети.
В случае моего ноутбука ( MacBook Air ) он не всегда может быть в одной сети. Можно ли подключиться к серверу Ubuntu с моего ноутбука через SSH, когда он находится в другой сети?
Я установил демон avahi, чтобы имя хоста сервера транслировалось в локальной сети, и настроил маршрутизатор так, чтобы он всегда назначал серверу один и тот же IP-адрес. Кроме того, единственное, что я установил на сервере, это OpenSSH, где я отключил аутентификацию по паролю, чтобы вы могли подключаться только с помощью пары ключей.
Я думал, что смогу сделать что-то подобное с терминала на моем ноутбуке:
ssh my.external.ip.address user@hostname.local
Когда я пытаюсь эту команду, я получаю ошибку:
ssh: подключиться к хосту my.external.ip.address порт 22: истекло время ожидания операции
Я также пытался
ssh my.external.ip.address user@servers.local.ip.address
и я получаю то же сообщение об ошибке, что и раньше. Так что это должно дать вам представление о том, что я пытаюсь сделать, но возможно ли это, и если да, то как мне это сделать?
Предполагая, что я могу установить внешнее соединение через ssh с моего ноутбука, есть вероятность, что мой провайдер изменит мой внешний IP-адрес, что приведет к разрыву внешнего соединения. Я хотел бы иметь возможность надежного подключения, то есть, если мой интернет-провайдер изменит внешний IP-адрес, я все равно смог бы удаленно подключиться к серверу, не зная, какой новый внешний IP-адрес.