Как завершить фоновый процесс SSH-туннеля

Вопрос или проблема

Я открываю SSH-туннель (для переадресации портов) с ПК на Windows 10 на удалённый сервер Linux, вводя следующую команду в командной строке Windows:

(Примечание: замените фактический DNS на host_IPv4_public_DNS)

C:> ssh -i thekey.pem -N -f -L 8888:localhost:8888 host_IPv4_public_DNS

После выполнения этой команды туннель открывается и полностью функционирует. Проблема в том, что я не получаю обратно командную строку Windows (C:>). Процесс продолжает работать. Как мне завершить этот процесс/туннель?

Удалите -N из вашей команды, которая говорит ssh не выполнять команду

 -N      Не выполнять удалённую команду. Это полезно только для переадресации портов.

ssh -i thekey.pem -f -L 8888:localhost:8888 host_IPv4_public_DNS

Это будет ваша команда, если вы хотите иметь доступ к удалённому хосту, чтобы получить доступ к командной строке вашего хоста. Я бы выполнил

start /b ssh -i thekey.pem -f -L 8888:localhost:8888 host_IPv4_public_DNS

Это откроет соединение в фоновом режиме, и вы сможете завершить процесс после использования CTRL + BREAK

Ответ или решение

Чтобы завершить фоновый процесс SSH-туннеля, который был запущен с помощью команды ssh -i thekey.pem -N -f -L 8888:localhost:8888 host_IPv4_public_DNS, можно воспользоваться следующими методами.

1. Завершение процесса по PID

Когда вы запускаете SSH-туннель в фоновом режиме с опцией -f, он выполняется в фоновом процессе, и, конечно же, вы не получаете обратно командную строку. Чтобы завершить данный процесс, вам нужно знать его PID (идентификатор процесса).

Шаги:

  1. Откройте новое окно командной строки.

  2. Введите следующую команду, чтобы найти PID процесса SSH:

    tasklist | findstr ssh

    Это отобразит все процессы SSH, запущенные в системе.

  3. Запомните PID или запишите его. Затем завершите процесс с помощью команды:

    taskkill /F /PID [PID]

    Замените [PID] на фактический PID, который вы получили ранее.

2. Использование команды для запуска в фоновом режиме

Если вы хотите запускать SSH-туннель в фоновом режиме, но при этом иметь возможность управлять процессом более удобно, вы можете воспользоваться следующей командой:

start /b ssh -i thekey.pem -N -L 8888:localhost:8888 host_IPv4_public_DNS

Используя start /b, вы сможете запускать процесс в фоновом режиме, не блокируя командную строку, и у вас будет возможность продолжать работу в ней.

3. Обработка завершения

Важно помнить о том, что после выполнения SSH-туннеля в фоновом режиме, вы можете прервать его при помощи клавиш CTRL + BREAK. Однако этот метод может не сработать во всех версиях Windows или в зависимости от конфигурации терминала.

Дополнительные рекомендации

  • Если вам часто нужно запускать SSH-туннели, вы можете рассмотреть возможность написания небольшого скрипта для автоматизации процесса. Это может включать автоматическое создание и завершение туннелей, что значительно упростит работу.

  • Убедитесь, что порт, используемый для перенаправления, не занят другими процессами и доступен для соединения.

Следуя этим шагам, вы сможете завершить SSH-туннель или запустить его в фоновом режиме более удобно.

Оцените материал
Добавить комментарий

Капча загружается...