Ubuntu 10.04 usando ssh sem digitar minha senha

1

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"  : (

    
por code_fodder 18.09.2013 / 13:00

1 resposta

2

Acho que você está tentando executar seu script como um script de shell. Depois de instalar o expect , execute seu script assim:

expect -f scrip.exp

Se você não puder instalar o espere como um usuário normal, tente instalar seus binários em um de seus diretórios em $HOME , por exemplo. $HOME/opt/ e chame expect de lá, embora dependa do seu sistema como você poderia manipular LD_LIBRARY_PATH para adicionar outro diretório para pesquisar bibliotecas dinâmicas.

Um exemplo de expectativa incorporada:

#!/bin/bash

USER=$1
SERVER=$2
PASSWORD=$3

expect <<EOF
spawn ssh "${USER}@${SERVER}"
expect "assword:"
send "${PASSWORD}\r"
interact
EOF

Executar com

bash script.sh user server password
    
por 18.09.2013 / 14:41