Iniciando screen ao efetuar login no host remoto (executado em sua máquina local):
ssh -t user@host screen
Na sessão de tela, no host remoto, para desconectar e efetuar logout (o que encerraria a sessão SSH, a menos que você esteja usando uma conexão persistente usando um soquete de controle (isto é, usando a configuração ControlMaster com ControlPersist in ~/.ssh/config )):
screen -d
Mais tarde, para fazer login e anexar novamente:
ssh -t user@host screen -r
Note que você tem que usar -t com ssh , forçando a alocação de pseudo-terminais, para iniciar screen desta maneira.
O alias no host remoto seria para screen -d , talvez detach='screen -d' ou algo semelhante.
No host local, você pode ter uma seção no arquivo ~/.ssh/config dizendo
Host *-screen
RequestTTY force
RemoteCommand screen -d -R
Host myhost myhost-screen
HostName myhost.somedomain.example.com
User myname
Então, sempre que você usar
ssh myhost-screen
uma sessão screen seria criada (ou reconectada a) no host especificado, enquanto
ssh myhost
não usaria screen .
Nota: RemoteCommand foi adicionado no OpenSSH 7.6 (2017-10-03).
Para tmux :
- Use
tmux new-session -A -s "%n"em~/.ssh/configem vez descreen -d -R. - Use o prefixo d ou
tmux detach-clientoutmux detachpara desanexar.