Eu sei que perguntas como essa foram feitas antes, e eu li todas elas (que eu encontrei).
O problema que tenho é que temos um dispositivo Linux embutido no qual podemos fazer o login para fins de depuração, fazendo o seguinte:
ssh root@name
Então a senha é qualquer coisa (eu costumo apenas apertar enter). Eu não quero mudar nada no dispositivo embutido / linux. Mas eu quero poder (como parte do meu roteiro) entrar nisso.
Minha pesquisa mostrou que o seguinte pode ser usado (isso é copiado de outro post):
#!/usr/bin/expect -f
spawn ssh [email protected]
expect "assword:"
send "mypassword\r"
interact
No entanto, com a minha versão do Ubuntu (10.04), não tenho spawn nem envio comandos. Consegui instalar o comando "esperar" com o sudo apt-get install expect.
Alguém tem uma solução? é possível instalar esses comandos, ou há outra maneira de ssh e passar da etapa "password"?
Obrigado :)
------------- EDITAR -----------------
Acho que estou começando a entender o problema que estou tendo. Eu tenho um script que começa com:
#!/bin/bash
Depois, estou tentando fazer:
spawn ssh [email protected]
expect "assword:"
send "mypassword\r"
interact
Eu não sabia que você precisava explicitamente de:
#!/usr/bin/expect -f
No início do script. então eu tive que mover meu código para um arquivo separado que contém apenas e exatamente:
#!/usr/bin/expect -f
spawn ssh [email protected]
expect "assword:"
send "mypassword\r"
interact
... desculpe pela falta de compreensão da minha parte, mas as respostas das pessoas me ajudaram a entender o que eu estava fazendo. Isso não é ideal para mim, já que eu queria passar parâmetros para abrir diferentes conexões ssh e não posso passar parâmetros para este script começando com "expect -f"
: (