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/config
em vez descreen -d -R
. - Use o prefixo d ou
tmux detach-client
outmux detach
para desanexar.