Uma maneira melhor / mais fácil do que usar o expect é SSHPASS, que envia uma senha por meio de uma solicitação SSH:
sshpass -p <PASSWORD> ssh <USER>@<SERVER> <SSH Command>
PASSWORD é a senha a ser inserida quando solicitado, USER é o nome de usuário, SERVER é o endereço IP do servidor (por exemplo, 10.8.100.100) e SSH Command é o comando que você deseja executar.
Para o seu exemplo:
sshpass -p <PASSWORD> ssh [email protected] mkdir <full path for new dir>
Para instalar o SSHPASS
sudo apt-get install sshpass
Se você está querendo que a sessão SSH permaneça depois que você espera que um uso ocorra com o seguinte,
#!/bin/bash
##Enter Username and Password Details:
userName=<UserName>
password=<Password>
expect -c "
spawn ssh ${useName}@10.8.100.100 ##put your own IP here
expect "password: " ##or whatever password prompt you get
send "$password\r"
epxect -re "Last Login: " ##or whatever the end of your welcome message is
send "su -i"
expect "password for <UserName>"
send "$password\r"
"
Isso deixará o acesso root logado, no entanto, até que o script envie uma declaração de retorno, ele manterá o controle até você pressionar "ctrl-c". Mas isso deve responder sua pergunta