Quero poder iniciar sessões de tela em servidores remotos a partir de um único comando ssh na minha área de trabalho. No entanto, a tela parece precisar de um terminal, que não está disponível ao executar um comando através do ssh.
Então o óbvio
ssh [email protected] screen "tail -f /var/log/messages"
(como exemplo) não funciona e fornece
Must be connected to a terminal.
Quero que o ssh inicie o comando em uma tela para que possa efetuar logon mais tarde e anexar como faria em uma sessão de tela que eu teria iniciado manualmente.
ssh
terminal
gnu-screen
tty
Thomas Vander Stichele
fonte
fonte
Respostas:
Tente usar a opção -t para ssh
De man ssh
fonte
ssh -t user@machine tmux attach
e posso anexar uma sessão remota do tmux, mas ela mexe com a codificação de caracteres. Ele exibe apenas caracteres ascii. Existe uma correção para isso?Você pode usar:
Isso inicia uma tela desanexada com um comando em execução.
fonte
Resposta tardia, mas é isso que faço, faço um apelido (vamos chamá-lo t) que faz isso:
Isso diz
ssh
para desativar o encaminhamento do agente e do X11 escreen
para anexar a uma sessão em execução, iniciar uma nova, se necessário, usar^Z
como o comando breakout, usar UTF-8 e ser inteligente sobre o terminal.Tudo isso significa que eu posso abrir um terminal, digite
t
e ele abrirá minha sessão de tela no $ MYSERVER. Posso abrir outro terminal, fazer a mesma coisa e obter outra janela na mesma sessão.É muito bom ter várias janelas de terminal na mesma sessão de tela, para que você veja duas guias da tela ao mesmo tempo.
fonte
t
qual é um único host, você pode combiná-lo com nomes de host no seu ssh_config.Colocando o seguinte no arquivo ~ / .bashrc no meu servidor, ele inicia uma sessão de tela na primeira vez em que faço logon no servidor ou, se já estiver em execução, reconecta-me a essa sessão.
Acho isso muito útil:
fonte
screen -ls
, então eu não vejo nenhuma sessão de tela