Você não precisa usar expect
para fazer isso. O comando ssh
pode receber argumentos adicionais dos comandos que você deseja executar por meio da conexão SSH.
Etapa 1
Configure um par de chaves SSH (google it) e copie a chave SSH para o servidor remoto. Para fazer isso, eu recomendo usar ssh-copy-id
. Veja minha resposta a essa pergunta e resposta com os títulos da U & L intitulada: Como copiar corretamente chaves privadas de servidores remotos para o meu localmachine para que eu possa se conectar usando ssh .
Etapa 2
Agora com a capacidade de usar o SSH em um servidor usando uma chave, seu problema acima se transforma nisso:
$ ssh [email protected] "ls -la; ps -af"
Você pode se interessar e usar aqui os documentos (heredocs aka. here-docs) para melhorar ainda mais essa técnica.
$ ssh [email protected] <<EOF
> ls -la
> ps -af
> EOF
ou coloque os comandos em um arquivo e passe-os para ssh
:
$ ssh [email protected] < my.cmds