Se você executar:
socat "unix-listen:$HOME/.shell-access,mode=600,fork" \
"exec:$SHELL,pty,stderr,setsid,ctty"
Isso permite que você faça por exemplo:
socat -,raw,echo=0 "unix:$HOME/.shell-access"
localmente, para conectar e interagir com esse shell.
Então você pode redirecionar a porta remota pelo ssh com:
ssh -R "/path/to/socket/on/host:$HOME/.shell-access" user@host
(assume uma versão relativamente recente do openssh (cliente e servidor)).
E então user
on host
pode interagir com esse shell fazendo isso
socat -,raw,echo=0 "unix:/path/to/socket/on/host"
Em vez de executar $SHELL
, você pode executar screen -xRS some-screen-session
para anexar uma determinada screen
sessão, para que várias pessoas possam ver a mesma sessão de tela.