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.
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.