Domanda

    

Questa domanda ha già una risposta qui:

         

Sto cercando di copiare un file dal mio server remoto al mio locale. Ecco il mio script per eseguirlo, usando 'prevedono' per inviare automaticamente la password

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

Quando eseguo questo, richiede ancora " Password " ;, cosa c'è che non va?

È stato utile?

Soluzione

Da quello che stai cercando di fare sembra che potresti stare meglio usando ssh con una chiave pubblica e privata. Puoi iniziare a utilizzare il tutorial ssh-keygen per iniziare.

Altri suggerimenti

Mentre sono d'accordo con Sam e Nik, la risposta alle tue domande è che non hai " premi invio " ;:

send "mypassword\r"

Questo script di attesa fa il lavoro (grazie 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
}

per favore, non lasciare nemmeno questi script in giro che saranno raccolti da qualcun altro e usati altrove .... prova autenticazione con chiave pubblica , è molto facile da configurare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top