Страницы

Поиск по вопросам

воскресенье, 29 марта 2020 г.

Удаленный доступ к linux ubuntu

#linux #ubuntu #remote_access


я новичок в linux и мне нужно удаленно подключиться к ферме на ubuntu 18.04 TLS.
О варианте с приобретением белого ip знаю, но все же хочу узнать, есть ли бесплатные
способы установить стабильное удаленное соединение на linux, тк ставить буду на ферму
к которой не буду иметь физического доступа долгое время. Интересуют способы как подключиться
и с другого linux, и с windows 8/10. Спасибо!
    


Ответы

Ответ 1



Если оператор выдаёт белый динамический адрес, то dynamic dns + cron-скрипт на сервере для обновления записи на DynDNS. Если оператор не выдаёт белый адрес, а предоставляет доступ в интернет через NAT, то Remote Port Forwarding SSH Tunnel на/с сервер(а) с белым IP. Как-то так: Remote Port Forwarding SSH Tunnel (port ABCD): UbuntuServer -> (Operator->NAT) -> Internet Server ssh -R ABCD:localhost:10022 user@internet.server Client (другой Linux / Windows) ssh user@internet.server:ABCD // эта ssh-сессия будет проброшена на UbuntuServer:10022 При этом SSH-сервер, к которому нужен доступ, должен слушать порт 10022. Дополняю ответ насчёт SSH Remote Port Forwarding. Т.к. remote port forward сессия может обрываться/подвисать, надо а) настроить таймауты для SSH и б) при необходимости перезапускать эту сессию. Для этого делаем: скрипт для (пере)запуска RemotePortForwarding-туннеля (для основного Ubuntu-сервера) - скажем, /opt/scripts/sshtunn.sh: (апостроф в начале первой строки не нужен) '#!/usr/bin/env bash CMD="ssh -f -N tunnel" PID=`pgrep -f "$CMD"` if [ -z "$PID" ]; then $CMD echo "[$(date '+%Y-%m-%d %H:%M:%S')] SSH tunnel (re)start" >> /tmp/ssh.tunnel.log fi исполняет его cron; для этого в /etc/cron.d нужно положить такой файлик: (< user > - имя пользователя, под которым запускать скрипт) * * * * * /opt/scripts/sshtunn.sh Чтобы скрипт нормально сработал (а также, чтобы сессия не подвисала), должна быть соответствующая настройка в ~/.ssh/config (в домашней директории того самого пользователя, под которым запускается скрипт): host tunnel hostname user port 22 identityfile ~/.ssh/keys/tunnel.key RemoteForward 10222 127.0.0.1:22 TCPKeepAlive yes ServerAliveInterval 10 ServerAliveCountMax 6 ну и тот самый интернет-сервер должен принимать подключения по ключу ~/.ssh/keys/tunnel.key

Комментариев нет:

Отправить комментарий