Я не уверен, отвечаю ли я на ваш вопрос, но мне кажется, что в том, что вы собираетесь делать, не хватает кирпича, поэтому я добавлю недостающую ссылку и рискну, что это не ваш вопрос.
То, что вы намерены сделать, возможно с SSH и не так уж сложно настроить, но позвольте мне начать с заявления об отказе: туннелирование SSH недопустимо во многих рабочих средах и может привести к увольнению, даже если ваша цель состоит в том, чтобы достичь своего собственного домашнего сервера данные / резервное копирование.
Чтобы подключиться к серверу, скажем, дома ("дома") за NAT вашего интернет-провайдера с ноутбука в общедоступной сети, скажем, в интернет-кафе ("ноутбук"), вы должны сделать следующее.
Для начала вам нужен работающий SSH-сервер, доступный в публичном интернете (SSShub).
Постоянно подключайте "home" с помощью "SSHhub" и удаленно перенаправляйте порт с "SSHhub" на ваш "домашний" сервер. Посмотрите на autossh, чтобы убедиться, что соединение сохраняется, если вас нет, и посмотрите справочную страницу sshd_config, чтобы настроить удаленную пересылку. На твоей домашней машине ты начинаешь
autossh -M 0 -Nf SOCKSUSER@SSHHUB -r 8022:localhost:22
Это перенаправит порт 8022 на общедоступном сервере SSHhub на порт SSH 22 вашего домашнего сервера.
Теперь вы сидите в интернет-кафе со своим ноутбуком и локально перенаправляете некоторый неограниченный порт на SSHhub на порт 8022 (используя приведенный выше пример). Итак, на вашем ноутбуке вы начинаете
autossh -M 0 -Nf SOCKSUSER@SSHHUB -l 8122:localhost:8022
Когда это настроено, вы можете подключиться по SSH к домашней машине со своего ноутбука, запустив
ssh SOCKSUSER@localhost -p 8122
Сеанс ssh пересылается с localhost:8122 на вашем ноутбуке на localhost:8022 на SSHhub и оттуда на localhost:22 на вашем домашнем сервере.
Вам будет предложено ввести пароль учетной записи. Все это доставит вам некоторые неудобства, связанные с наличием открытого ключа от ноутбука и домашнего сервера в файле .ssh/authorized_keys SSHhub. PasswordAuthentication no
в файле /etc /ssh /sshd_config должно быть в порядке, так как вы входите изнутри localhost, но проверьте это сами. Возможно, вы захотите установить его на да во время отладки.
Проверьте man-страницу autossh для опции -M 0
. Это будет "пинговать" SSH-сервер через зашифрованный туннель, в противном случае вам придется настроить порты мониторинга с опцией -M
. -M 0
требует, чтобы вы установили переменные ServerAlive в файле .ssh/config следующим образом
ServerAliveInterval 15
ServerAliveCountMax 2
TCPKeepAlive no
Вы можете иметь их также встроенными, я думаю.
Теперь я могу ответить на ваш оригинальный вопрос: возможно ли войти в систему на вашем домашнем компьютере через NAT без открытого ключа RSA на компьютере ноутбука / интернет-кафе. Ответ - "да" (насколько я помню) в приведенном выше сценарии, когда вы разрешаете PasswordAuthentication yes
на SSHhub, так что вы можете подключиться с любого компьютера (с доступным клиентом SSH) к SSHhub.
Очень поздно и, вероятно, неправильный ответ, но я потратил некоторое время, чтобы понять это, и я думаю, что другие тоже задаются этим вопросом.