Pergunta

Esta questão já tem uma resposta aqui:

Eu estou tentando copiar um arquivo do meu servidor remoto para o meu local. Aqui está o meu script para executá-lo, usando 'espera' para enviar automaticlally a senha

scp user@host:/folder/myFile ./
expect "Password: "
send "myPassword"

Quando eu executo isso, ainda instruções para "Password", o que está errado?

Foi útil?

Solução

Do que você está tentando fazer, parece que você pode ser melhor fora de usar ssh com um público e uma chave privada. Você poderia google para ssh-keygen tutorial para começar.

Outras dicas

Embora concorde com Sam e nik, a resposta para você perguntas é que você não "enter":

send "mypassword\r"

Esta esperar roteiro faz o trabalho (graças a 'zedwood' )

#!/usr/bin/expect -f
set filename [lindex $argv 0]
set timeout -1
spawn scp $filename myusername@192.168.1.123:/home/myusername/
set pass "mypassword"
expect {
        password: {send "$pass\r" ; exp_continue}
        eof exit
}

por favor, não mesmo deixar tais scripts em torno de que vai ser pego por alguém e usado em outro lugar .... tente pública chave de autenticação , é são muito fáceis de configurar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top