Есть ли способ отменить все соединения SSH и закрыть PuTTY «одним выстрелом»? Я работаю в Windows 7 и использую PuTTY для SSH на различных хостах Linux.
Пример того, как я работаю:
SSH to host1 with PuTTY...
banjer@host1:~> #...doin some work...ooh! need to go check something on host8...
banjer@host1:~> ssh host8
banjer@host8:~> #...doin some work...OK time for lunch. lets close putty...
banjer@host8:~> exit
banjer@host1:~> exit
Putty closes.
Как указано выше, есть ли способ добраться от host8 до закрытия PuTTY за один раз? Иногда я нахожусь на глубине до 5 или 10 хостов. Я понимаю, что могу щелкнуть X, чтобы закрыть окно PuTTY, но я хочу убедиться, что мои SSH-соединения закрыты должным образом с помощью команды выхода. Я также понимаю, что прошу советы о том, как увеличить лень. Я просто спишу это как «как я могу быть более эффективным».
ctrl+d
несколько раз?Ответы:
Попробуйте использовать
ssh
escape-последовательность завершения соединения.В
ssh
сеансе введите~.
(тильда точка). Вы не увидите символы при их вводе, но сеанс немедленно прекратится.Из
man 1 ssh
источник
~.
в псевдоним или функцию? Просто чтобы дать ему легко запомнить имя какexitall
. Теперь я прошу слишком много :). Я попробовал несколько вещей,~/.bashrc
но получить-bash: ~.: command not found
. Я полагаю, что bash воспринимает это как строку, а не как escape-последовательность, исходящую непосредственно с клавиатуры.ctrl+d
решение, но оно отвечает на мой вопрос более прямо. Спасибо всем.~.
, он обрабатываетсяssh
сам по себе.ssh
Клиент CLI нуждается в этой технике, потому что это CLI. PuTTY - это приложение с графическим интерфейсом, и есть гораздо более удобные способы сделать это с помощью графического интерфейса.Просто нажмите, CtrlDи он зарегистрирует вас там для удержания Ctrl и нажимайте «d», пока окно не исчезнет.
источник
EOT
. И дажеbash
проигнорирует это в середине командной строки. Попробуйте сами: наберите одну букву и попробуйтеCtrl-D
.logout
.Просто закройте PuTTY. ( Alt+ F4по умолчанию IIRC.)
источник
Другой способ сделать
function
дляssh
:К сожалению, он также всегда будет закрывать соединение и выходить из консоли после завершения работы в удаленной системе.
Обратите внимание, что вам нужно сделать такую функцию на всех ваших серверах, иначе этот хак не сработает. Кстати, вы всегда можете поместить функцию в ~ / .bashrc или ~ / .whwhat_shell_you_use_rc.
Это выглядит немного грязно, по сравнению с Утером.
источник
function
это не POSIX - просто удалите ключевое слово, и вам нужно$@
правильно заключить в кавычки , иначе ваши аргументы будут переданы после разбиения слова (плохо).Или вы можете использовать
exec
для замены процесса оболочкиssh
при переходе на другой хост:Глубина 5 уровней - это не красиво, так как трафик будет проходить через все остальные серверы. Из-за этого я не рекомендую просто убивать PuTTY или ssh (~.), Поскольку (в зависимости от того, что вы делаете) это может привести к потерянным процессам на серверах.
Лучше попробовать и быть менее "ленивым". Щелчок правой кнопкой мыши на строке заголовка puttys позволяет быстро открыть новый сеанс. Если у вас есть сервер по умолчанию и вы принимаете 1 прыжок, функция «Дублировать сеанс» очень полезна. Особенно при использовании аутентификации pubkey.
источник
Если вы не против сделать небольшой сценарий, вы можете сделать это.
Скрипт: myssh.sh
Звоните через команду точка:
Если вы хотите выйти из одного уровня:
Если вы хотите выйти из всех:
источник
Выйти из системы в окне терминала замазки:
Закрывает соединение ssh и закрывает приложение Putty.
источник
ssh host1
, а потом, изhost1
, делаетssh host8
. В этот моментlogout
команда a будет делать то же самое, что иexit
команда, которую они уже знают, - выйти из нееhost8
и вернуть их обратноhost1
.