Ответы:
Если вы используете Linux, вы можете убить процесс:
ps aux | grep ssh
а затем использовать
kill <id>
Чтобы убить процесс.
Если команда kill не удалась, вы можете попробовать
kill -9 <id>
kill -9
пока не попробуете kill
. Многие процессы будут иметь обработчики сигналов, которые очистят их использование ресурсов, аккуратно закроют соединения и другие задачи перед завершением работы. Если вы убьете с -9, процесс немедленно прекратит свою работу без очистки. Убийство без -9 будет работать большую часть времени.
kill -9
без причины все равно что использовать дробовик, чтобы убить комара. :)
pgrep ssh | xargs kill
. Не используйте -9
ничего на самом деле
ssh
команда, или что все ssh
команды, которые вы выполняете, могут быть уничтожены. Это вряд ли хорошее общее предположение.
ssh
экземплярам на нескольких удаленных серверах, некоторые из которых без моего непосредственного активного участия. Например, режим Emacs Tramp открывает ssh
соединение за кулисами, когда я посещаю удаленный буфер. Некоторые люди используют пользовательские файловые системы, которые делают нечто подобное. Это совсем не редкость. На самом деле, я бы предположил, что один пользователь, один ssh
экземпляр - это дополнительный случай меньшинства. Если это работает для вас, хорошо для вас, но это не очень хороший общий совет.
При использовании мультиплексирования ssh уничтожение процесса ssh часто нежелательно (оно убивает все открытые соединения с этим хостом), и вы не можете легко получить доступ к escape, потому что «escape недоступно для мультиплексированных сеансов». Правильный путь - запустить аналог команды переадресации, которую вы хотите отменить, но добавить -O cancel
. Например:
ssh -O cancel -L 10002:192.168.0.30:10002 192.168.1.135
Это отключит переадресацию этого порта без завершения сеанса. Опять же, это будет работать только в том случае, если для соединения с 192.168.1.135 используется мультиплексирование ssh .
ssh -O exit 192.168.1.135
.
Как отменить переадресованный порт в уже запущенном сеансе SSH:
-KL port
Вы должны увидеть это:
ssh> -KL 10002
Canceled forwarding.
Вы можете использовать "escape-ключ" (обычно ~), а затем C, чтобы получить cli для вашего соединения. Оттуда вы можете удалить туннели, не разрывая соединение.
Вы можете войти в интерактивную консоль, набрав ~C(заглавная "C"). Это позволяет динамически добавлять и удалять переадресацию портов (среди прочего).
Эта последовательность должна появиться сразу после возврата каретки / перевода строки. Так что в сомнении, просто введите Enter~C(по порядку).
Если вы не видите символы, появляющиеся на консоли, вы делаете это правильно :)
Теперь вы должны увидеть ssh>
подсказку.
Чтобы удалить порт, просто введите, -KL 10002
а затем Enter(где 10002
находится ваш перенаправленный порт).
Обратное - добавление нового форварда - можно сделать так (от начала до конца):
Enter~C
ssh> -L 10002:192.168.0.30:10002
Enter
~C escape not available to multiplexed sessions
. Если это так, см. Отличный ответ a3nm.
Warning: remote port forwarding failed for listen port
сообщение.