ssh -t user @ server screen -rR screenName

ЛЕНО: Этот вопрос теперь, я полагаю, включен в этот:Использование GNU Screen полностью прозрачно и автоматически

Смотрите также этот связанный вопрос:
https://superuser.com/questions/147873/ssh-sessions-in-xterms-freeze-for-many-minutes-whenever-they-disconnect

Оригинальный вопрос:

Было бы неплохо, если бы существовал способ подключиться к компьютеру по ssh и немедленно подключиться к определенной сессии экрана. Ты можешь сделать это:

laptop> ssh server.com screen -ls

и он покажет список экранов, доступных на server.com, примерно так [1]:

123.pts-1
456.pts-2

И тогда вы можете попытаться сделать это:

laptop> ssh server.com screen -dr pts-2

но это терпит неудачу, говоря: «Должен быть подключен к терминалу». Сначала вы должны выполнить ssh, а затем выполнить «screen -dr pts-2» на server.com, что не очень хорошо, если у вас нестабильное соединение и вы часто отключаетесь. Вы хотите иметь возможность возобновить с помощью простого «ввода со стрелкой вверх» на ноутбуке. (Или, возможно, сделать его еще более автоматическим.)

У меня есть смешное решение этой проблемы, которое я опубликую в качестве ответа, и надеюсь, что оно обернется забвением в пользу «Правильного пути» для решения этой проблемы.

Примечания:

[1] Или, лучше, если вы создали сеансы экрана с такими именами, как "screen -S foo" а также "screen -S bar"тогда вы получите более дружелюбный список, как:

123.foo
456.bar

и может восстановить связь, например, с "screen -dr foo».

Мини экран учебник, включающий ответ на этот вопрос:

Войдите на server.com и сделайте

screen -S foo 

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

ssh -t server.com screen -dr foo

Для просмотра списка доступных экранов, к которым необходимо подключиться:

screen -ls

или, конечно же,

ssh server.com screen -ls

удаленно проверять доступные экраны server.com.

Теперь я использую следующий псевдоним (tcsh), основанный на ответе Джейсона ниже, чтобы подключиться к именованному экрану, если он существует, или создать и подключить иначе:

alias ssc 'ssh -t \!:1 "screen -S \!:2 -dr || screen -S \!:2"'

Ответы на вопрос(6)

Ваш ответ на вопрос