Могу ли я подключиться или просмотреть оставленные сеансы SSH?


14

У меня есть виртуальный экземпляр redhat, работающий sshс любого хоста в корпоративной сети. Мой sshсеанс был прерван во время выполнения некоторых сценариев, которые могли или не могли заставить меня отключиться. Команда whoлокально по-прежнему перечисляет разорванное соединение. Воссоединение с sshначинается новый сеанс. Есть ли способ подключиться к исходной сессии? Если не могу я убить это? У меня есть root и физический доступ. Я не использовал экран в исходной сессии.

Ответы:


11

Вы хотите использовать экран на пульте, а затем, когда вы вернетесь через ssh, вы снова подключитесь к этому экземпляру экрана.

но нет, вы не можете повторно подключиться к сеансу ssh сами по себе, вы должны использовать экран (или что-то подобное, чтобы облегчить это).

Посмотрите на этот вопрос, как минимум, еще один вариант и некоторые различия между ним (tmux) и экраном. после прочтения ответа на этот вопрос ... я бы сказал, что tmux лучше

о, да, вы можете killостановить процесс (включая разветвленный bash), вы можете попытаться skillубить пользователя по имени, но я подозреваю, что если этот пользователь является пользователем root ... он может попытаться убить то, что не может.

ответ был обновлен несколько раз


4

По умолчанию вы не можете повторно подключиться к оставленному сеансу ssh. Однако вы можете настроить процессы внутри сеанса ssh, к которому вы можете подключиться после восстановления нового сеанса ssh.

То, что вы хотите использовать, это экран или, что еще лучше, удобная оболочка вокруг экрана, которая называется byobu.

Экран позволяет запускать несколько сеансов виртуального терминала в одном сеансе SSH. А учебник и справочные страницы доступны.

byobu - это оболочка, которая позволяет легко открывать новые экраны с помощью простой функциональной клавиши вместо комбинации клавиш ctrl-a. Он также показывает строку состояния со всеми открытыми виртуальными терминалами, которые могут быть названы.

Еще одна приятная особенность заключается в том, что весь ваш экран может работать, пока ваше ssh-соединение отключено. Вы просто подключаетесь снова через ssh и вызываете byobu, и все как раньше.

Напоследок несколько скриншотов по бёбу.


3

Как уже упоминалось, экран, вероятно, ваш лучший выбор. Если / когда ваш сеанс будет удален, он продолжит работу. Введите «screen -list», чтобы увидеть доступные сеансы, и «screen -r» с нужным сеансом. Небольшой совет, вы можете завершить строку сеанса табуляцией, а не копировать / вставлять все это.

Однако экран может раздражать. В моем клиенте вы не можете легко прокрутить вверх, чтобы увидеть историю в консоли. Он действует немного иначе, чем вы ожидаете. Если все, что вы хотите сделать, это убедиться, что ваши долго работающие процессоры не будут убиты, используйте nohup. Это предотвратит закрытие вашего процесса, когда вы потеряете соединение. Убедитесь, что вы отправляете свои выходные данные в файл, если хотите их контролировать. Кроме того, если у вас есть скрипт bash, я думаю, вам нужно явно вызвать bash перед nohup. Пример...

nohup bash ./myscript.sh> output.log 2> & 1 &

Это означает nohup, чтобы предотвратить уничтожение proc, bash явно вызвать bash, если в вашем скрипте есть специфичные для bash вещи, ваш скрипт с именем 'myscript.sh' в текущем каталоге, output.log в качестве файла для отправки как std out, так и ошибка, и '&' в конце, чтобы запустить процесс в фоновом режиме.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.