Ответы пользователя по тегу SSH
  • Какие запросы или домены нагружают сервер?

    Vindicar
    @Vindicar
    RTFM!
    Включить логирование запросов HTTP-сервером на несколько минут (чтобы всё дисковое пространство не забило), потом проанализировать логи?
    Ответ написан
  • Не выходит зайти в приложение X11. Что такое?

    Vindicar
    @Vindicar
    RTFM!
    Ну вообще пробросить графический интерфейс через SSH - не самая тривиальная задача.
    Почему бы не использовать предназначенные для этого инструменты типа VNC?
    Ответ написан
    Комментировать
  • Как настроить ssh туннель для smb?

    Vindicar
    @Vindicar
    RTFM!
    В ssh есть три варианта проброски портов.
    -L lport:remote.host:rport задаёт проброску клиентского порта, т.е.
    1. клиент SSH слушает порт lport на своей машине. По умолчанию на всех сетевых интерфейсах, но можно указать желаемый адрес, который будет слушаться, так: bind.address:lport:remote.host:rport
    2. когда к этому порту кто-то коннектится, клиент сообщает серверу
    3. сервер коннектится на remote.host:rport
    4. В дальнейшем данные пробрасываются через этот туннель.

    -R rport:local.host:lport работает наоборот
    1. сервер SSH слушает порт rport на своей стороне. По умолчанию на всех сетевых интерфейсах, но можно указать желаемый адрес, который будет слушаться, так: bind.address:rport:local.host:lport
    2. когда к этому порту кто-то коннектится, сервер уведомляет клиента
    3. клиент коннектится на local.host:lport
    4. В дальнейшем данные пробрасываются через этот туннель

    И последний, самый практичный, но самый трудно контролируемый.
    -D lport или -D bind.address:lport
    1. клиент слушает порт lport на своей стороне
    2. когда к этому порту кто-то коннектится, клиент пробрасывает соединение на ssh сервер
    3. ssh сервер отвечает по протоколу прокси SOCKS4/SOCKS5, и выполняет дальнейшие соединения в зависимости от желаний подключившегося приложения.
    Т.е. чтобы это работало, нужно чтобы приложение умело работать с SOCKS-прокси.

    Не помогает - значит нужно отлаживать. Я не вполне понял, где расположена smb-шара - на том же хосте, что и ssh сервер? Или на другом? Также стоит убедиться, что соединение с ssh сервером устанавливается нормально.
    Наконец, стоит выделить под такие туннели отдельного пользователя на сервере, и ограничить его в правах на всё, кроме использования туннеля.
    Ответ написан
  • Как удаленно получить время сервера Debian?

    Vindicar
    @Vindicar
    RTFM!
    Запустить на нем крошечный веб-сервер, который отвечает на запрос текущим системным временем?
    Ответ написан
  • Как скачать архив по ssh?

    Vindicar
    @Vindicar
    RTFM!
    scp нужно запускать на своей машине. Например, так:
    scp user@server:/path_to_file/admin.2021-11-03_05-13-58.tar target_path/admin.2021-11-03_05-13-58.tar
    где user - имя пользователя,
    server - сервер, откуда качаешь файл.
    /path_to_file/ - полный путь к файлу
    target_path - путь на твоей машине куда качаешь файл.
    Это скачает файл с удалённой машины на твою. Если укажешь пользователя и сервер во втором параметре, то будет копировать с твоей машины на удалённую.
    Ответ написан
    4 комментария
  • Как открыть ssh туннель на python?

    Vindicar
    @Vindicar
    RTFM!
    Посмотри в сторону Parallel-SSH, в частности под-модуля NativeTunnel. Но насколько я понимаю, с туннелями всегда морока.
    Ответ написан
  • Как исправить ошибку в коде Python?

    Vindicar
    @Vindicar
    RTFM!
    А почему так много аргументов subprocess.Popen()?
    "powershell putty.exe ", login, "@", name_server, " -pw", password, - 6 штук.
    В документации четко написано: "args should be a sequence of program arguments or else a single string or path-like object. "
    А также:
    class subprocess.Popen(args, #и так далее
    args без звёздочки, так что это должен быть ОДИН аргумент. Т.е. коллекция строк, например, список.
    Ответ написан
  • Как подключиться к базе данных на другом сервере?

    Vindicar
    @Vindicar
    RTFM!
    Поищи по "SSH port forwarding". Вот хороший пример.
    Если коротко, есть три варианта. Локальный форвардинг означает "любой коннект на указанный порт на локальной машине должен пробрасываться на SSH сервер, а сервер должен пробрасывать его на указанный порт на указанном адресе".
    Удалённый форвардинг означает "любой коннект на указанный порт на SSH сервере должен пробрасываться на этот клиент, а клиент должен пробросить его на указанный порт на указанном адресе."
    Динамический форвардинг проще, но менее контролируемый. Он означает "клиент слушает указанный локальный порт и притворяется SOCKS-прокси. Любое соединение пробрасывается через SSH-сервер, который соединяется с целевым адресом по своему усмотрению."
    Любой форвардинг длится, пока длится SSH-сессия.
    Так что в твоём случае нужен локальный форвардинг. При этом поскольку сервер БД на одном хосте с сервером SSH, ssh-сервер должен пробрасывать соединения на localhost:порт сервера бд. А твоё ПО будет коннектиться на localhost твоей машины, и тот порт, который ты указал как локальный. Можешь для простоты задать его таким же, как порт сервера БД.
    Ответ написан
    Комментировать