Único comando para acessar o SSH e executar o programa?

45

Existe uma maneira de estruturar um único comando para efetuar login via SSH em um servidor remoto e executar um programa no shell de login remoto?

No manual do OpenSSH, lê-se "Se o comando for especificado, ele será executado no host remoto em vez de um shell de login". Portanto, por exemplo, ssh user@server mail fará o login no servidor remoto, exibirá o status da caixa de correio e, em seguida, retornará ao shell local. Existe uma maneira de permanecer no shell remoto depois de exibir o status do email?

Além disso, ssh user@server [command] parece não funcionar se o comando for um programa, por exemplo, vim ou mutt. Existe uma maneira de acessar o shell remoto e executar um programa enquanto permanece no shell remoto durante o programa e depois de sair do programa, apenas finalmente saindo em um comando logout específico (como em uma sessão SSH normal)? / p>

Eu gostaria de poder colocar esse comando como um alias no .bashrc local, para que ele pudesse ser executado rapidamente quando desejado. Um exemplo seria fazer o login via SSH em um servidor remoto e abrir o mutt no servidor remoto para ler ou enviar e-mail.

    
por user981178 16.03.2014 / 03:51

1 resposta

72

Já experimentou ssh -t user@server "mail && bash" (ou substitui bash por qualquer shell que você goste).

O -t é necessário, para criar uma pseudo-tty para o bash para usar como um shell interativo.

    
por 16.03.2014 / 04:14