Переподключение к сеансу SSH

В настройках SSH поставил "не завершать сеанс при разрыве". После переподключения не знаю как присовокупиться к висящему сеансу.

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

http://libc6.blogspot.com/2008/09/screen-terminal.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+libc6+%28%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%BE%D0%B5+%D1%80%D0%B0%D0%B4%D0%B8%D0%BE+libc6%29

Попробую использовать его вместо bash, как оболочку по умолчанию для ssh-сеансов.
Как настроить автоматический запуск screen при входе по ssh 

Достало постоянно вводить screen -dR при входе на удалённую машину. Погуглив нашёл простое решение. В конце ~/.bashrc дописать: 

if [ -z "$STY" ]; then
    exec screen -dR
fi

У меня чуть более продвинутый

Опубликовано Анонимный в вс, 19/10/2008 - 10:01.

У меня чуть более продвинутый вариант :)

В конец .basrc надо добавить

if [ "$SSH_TTY" ]; then
  if [ ! "$STY" ]; then
    CHOICE=`SCREEN/choose`
    if [ -z "$CHOICE" ];
    then
      exec screen
    else
      exec screen -dr $CHOICE
    fi
  fi
fi

и создать файл ~/SCREEN/choose:

#!/bin/bash
 
USERNAME=`whoami`
 
i=0
declare -ax SCREENS
 
SOCKETS=`find /var/run/screen/S-$USERNAME -type p`
 
if [ -z "$SOCKETS" ];
then
  exit 0
fi
 
for S in $SOCKETS
do
  ((i=$i+1))
  S=`basename $S`
  SCREENS[$i]=`screen -ls | grep $S | perl -e '$s=<>; $s =~ s/^\\t(.*)\s/$1/; $s =~ s/\s/_/g; print $s'`
done
 
 
MENU=""
for ((j=1; j<=$i; j=$j+1))
do
  MENU="$MENU $j ${SCREENS[$j]}"
done
 
WHICH=`dialog --stdout --menu Select: 0 0 0 $MENU`
echo ${SCREENS[$WHICH]} | sed -e 's/_(.*)$//'

При логине будет предлагаться меню со списком имеющихся сессий screen, можно выбрать нужную либо создать новую. Если запущенных screen'ов нет, автоматически запустится новая сессия.

Единственная (вроде бы) зависимость -- нужно поставить dialog.

Ссылки: