1

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

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

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

3 ответа3

2

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

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

2

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

То, что вы намерены сделать, возможно с 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.

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

-1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .