No seu comentário sobre a resposta de fons, você diz que não funciona durante o uso screen
.
Você poderia elaborar sobre isso? Observando o código-fonte do openssh, o sshd executa o comando chamando
YOUR_DEFAULT_SHELL -c COMMAND
Portanto, por exemplo, se o seu shell padrão for screen
, isso não funcionará muito bem porque screen
o -c
sinalizador simplesmente substitui o seu .scrreenrc
. Portanto, não há realmente nenhuma maneira de enviar comandos para a tela, se for seu shell padrão. Você precisará executar a tela como o comando dado ao ssh, mas com um shell padrão que não é a tela .
Se é isso que você está tentando fazer, acho que as coisas ficarão realmente estranhas, já screen
que também fechará janelas com programas não interativos, então você terá que fazer um truque semelhante ao de fons, mas um nível mais profundo. SO, com, por exemplo, / bin / bash (e não tela) como seu shell padrão .
ssh user@host -t 'screen bash -l -c "ls;bash"'
O que deve - respirar fundo - ssh no host, execute bash -c com um comando de tela, que abrirá uma nova janela. Se essa janela apenas abrisse ls, ela terminaria e a tela terminaria, então usamos o truque de fons dentro da nova janela da tela .
Eu acho que vai funcionar, se é isso que você estava tentando fazer;)