Достичь компьютеру за NAT или Proxy

У меня есть домашний компьютер, подключенный через спутниковый модем twoway. Я не могу добраться извне, поэтому после некоторого исследования я нашел решение, которое является обратным туннелированием ssh. но у меня есть несколько вопросов относительно ssh

У меня есть сервер, и я хотел бы сделать соединение reverss, после того, как я могу использовать переадресацию портов, чтобы я мог подключиться к домашнему компьютеру с помощью установленного обратного соединения. Мой вопрос заключается в том, создаю ли я открытый ключ для установления соединения между домашним ПК и сервере, после чего можно войти на этот сервер с другого компьютера, используя пароль вместо открытого ключа?

Я хотел бы написать скрипт (cron job), который устанавливает ssh соединение, поэтому через 30 минут он проверит, если соединение сломано или нет, если оно сломано, чем он будет восстановить соединение, как я могу проверить, является ли соединение ssh по-прежнему открыт?

28
задан Dave M
17.12.2022 13:04 Количество просмотров материала 2474
Распечатать страницу

3 ответа

SSH может быть настроен для приема открытого ключа и пароля. Я не отключил длинный и трудный пароль, который я установил на своих серверах SSH, на случай, если я потеряю файлы ключей.

если вы используете ssh-клиент для установления соединения, он завершает работу после завершения соединения. Вы можете сохранить PID клиента ssh при его запуске и проверить, запущен ли тот же PID, или вызвать ssh из скрипта без выхода из сценария while (если bash) настроить бесконечный цикл для вызова ssh снова и снова каждый раз, когда он завершается. init явно предназначен для этого, так что вы можете посмотреть на это, а также.

2
отвечен LawrenceC 2022-12-18 20:52

Я не уверен, отвечаю ли я на ваш вопрос, но я чувствую, что в том, что вы собираетесь делать, отсутствует кирпич, поэтому я добавлю недостающее звено и рискну, что это не ваш вопрос.

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

в порядке чтобы добраться до сервера lets say дома ("ДОМА") за NAT вашего провайдера с ноутбука в публичной сети, скажем, интернет-кафе ("ноутбук"), вы сделаете следующее.

сначала вам нужен SSH-сервер, работающий, который доступен в публичном интернете (SSShub).

подключить" home "постоянно с" SSHhub " и пульт ДУ перенаправить порт из "SSHhub" на ваш "домашний" сервер. Взгляните на autossh, чтобы убедиться, что соединение сохраняется, если вы отсутствуете, и проверьте страница справочника sshd_config для правильной удаленной пересылки. На вашей домашней машине вы начинаете

autossh -M 0 -Nf SOCKSUSER@SSHHUB -r 8022:localhost:22

это перенаправит порт 8022 на публичном сервере SSHhub на ваш домашний сервер SSH порт 22.

теперь вы сидите в интернеткафе с ноутбуком и local перенаправить некоторый неограниченный порт на sshhub на порту 8022 (используя приведенный выше пример). Так что на вашем ноутбуке вы начинаете

autossh -M 0 -Nf SOCKSUSER@SSHHUB -l 8122:localhost:8022

когда это настроено, вы можете главная машина с вашего ноутбука, запустив

ssh SOCKSUSER@localhost -p 8122

сеанс ssh, перенаправленный с localhost: 8122 на вашем ноутбуке на localhost: 8022 на SSHhub, а оттуда на localhost: 22 на вашем домашнем сервере.

вам будет предложено ввести пароль учетной записи. Все это даст вам некоторые головные боли с имея открытый ключ от ноутбука и домашний сервер .ssh / authorized_keys файл SSHhub. PasswordAuthentication no в файле /etc/ssh/sshd_config все должно быть в порядке, так как вы вход из внутри localhost, но проверить это сами. При отладке может потребоваться установить значение да.

Регистрация autossh странице для -M 0option. Это будет "пинг" сервер SSH через зашифрованный туннель в противном случае вы должны настроить порты мониторинга с -M option. -M 0 требует, чтобы вы установили переменные ServerAlive в .ssh / config файл типа so

ServerAliveInterval 15
ServerAliveCountMax 2
TCPKeepAlive no

вы можете иметь их также inline я думаю.

теперь я могу ответьте вам на оригинальный вопрос: Можно ли войти в свою домашнюю машину за NAT без открытого ключа RSA на ноутбуке / машине интернет-кафе. Ответ " да " (насколько я помню) в приведенном выше сценарии, когда вы разрешаете PasswordAuthentication yes на SSHhub, так что вы можете подключиться с любой машины (имея SSH-клиент доступен) к SSHhub.

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

2
отвечен Reinhard Seifert 2022-12-18 23:09

не отвечая на ваш точный вопрос, вы решите проблему с такими продуктами, как neorouter... Очень проста в установке и обрабатывает практически любой конфигурации брандмауэра.

-1
отвечен Mattias Åslund 2022-12-19 01:26

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх