Como digitar senha automaticamente para SCP ou SFTP para automatizá-la?

3

Eu tenho script onde eu coloco o comando scp para o arquivo de backup para outro servidor. Mas quando é executado, pede para digitar a senha. Existe uma maneira de automatizar isso? Eu estou usando o CentOS 5.6. Eu tenho visto alguns guias que usam o comando spawn quando eu o uso, dizendo -bash: spawn: command not found .

#!/usr/bin/expect -f

# connect via scp
spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "PASSWORD\r"
}
}
interact
    
por Hujeplet 09.12.2011 / 20:10

3 respostas

3

Certifique-se de ter o 'Expect' instalado. Nas distribuições do Linux com 'yum', execute (como root): # yum install expect Em seguida, certifique-se de que o caminho esperado esteja correto em seu script, digitando: $ which expect / usr / bin / expect O caminho retornado deve ser colocado no início do script em #! / usr / bin / expect -f

    
por 09.12.2011 / 20:18
7

Use a autenticação baseada em chave com a frase secreta vazia. Isso não pedirá senha.

Siga estes passos .

    
por 09.12.2011 / 20:14
1

Se o spawn não estiver funcionando, você precisa verificar sua instalação esperada. Enviar senha pode ser automatizada assim ...

spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp

expect {
"assword:" {
    send "MyPassword\r"
    # you can send remote commands here..
}
"yes/no)?" {
    send "yes\r"
    sleep 2
    exp_continue
}
timeout {
    puts "\nError: timed out.\n"
    exit
}
}
    
por 13.02.2013 / 06:09