Domanda

Come posso aspettarmi di inviare una password a una connessione ssh.

indica che la password era p @ ssword e il comando ssh era ssh me@127.0.0.1

Cosa dovrei fare se mi aspetto di fargli inserire la password quando dice

password me@127.0.0.1:
?

L'azione corretta dell'uso di una coppia di chiavi SSH non è un'opzione perché dovrei usare ssh (scp) per mettere la chiave sul server, che richiederebbe una password.

È stato utile?

Soluzione

Ho sempre usato il "corretto" soluzione, ma ho usato aspettarsi in altre situazioni.

Qui ho trovato il seguente suggerimento:

#!/usr/local/bin/expect
spawn  sftp  -b cmdFile user@yourserver.com
expect "password:"
send "shhh!\n";
interact

Altri suggerimenti

Non sarebbe più semplice utilizzare l'autenticazione con chiave pubblica e utilizzare una chiave senza passphrase?

Mentre l'utente sul computer di origine lo fa per creare una chiave RSA

ssh-keygen -t rsa

Ora copia ~ / .ssh / id_rsa.pub sul computer di destinazione e aggiungilo al file authorized_keys dell'utente di destinazione

Il tuo modo di procedere più veloce (a meno che tu non voglia diventare un esperto di Tcl, che sarebbe ... insolito ... nel 2009) è probabilmente quello di utilizzare autoexpect . Ecco la pagina man:

http://expect.nist.gov/example/autoexpect.man.html

In breve, avvia autoexpect , esegui la tua sessione ssh, termina ciò che devi fare, smetti di aspettarti e poi batti la tastiera sul disordine risultante fino a quando non funziona :) non hai bisogno di altro che un trucco rapido per sistemare le tue chiavi e poi, beh, sembra che tu sappia già il punteggio con quello.

E c'è questa domanda che contiene già un esempio vicino a ciò che cerchi.

Cygwin ha autoexpect solo nel pacchetto bin. eseguire setup.exe e cercare aspettarsi e selezionare la casella di controllo di origine. vedrai l'albero risultante in / usr / src e lì c'è una directory explore / prevedono / esempi. lì dentro vive una copia dello script autoexpect.

La soluzione chiave non funzionerà ... perché le chiavi devono essere leggibili solo dalla persona che esegue ssh. Su XP non è possibile creare la struttura delle chiavi con le autorizzazioni corrette. Quindi ssh non li leggerà. Questo potrebbe essere cambiato, ma l'ultima volta che ho controllato non funzionava ancora.

Sono abbastanza sicuro che non è possibile fare ciò che stai cercando di fare. La maggior parte delle applicazioni * nix che richiedono una password letta direttamente dal TTY, non stdin, quindi non è possibile reindirizzare la password. È possibile, come altri hanno già detto, configurare SSH per non richiedere una password, come spiegato qui .

Dopo essere stato sottoposto a downgrade senza motivo apparente, sono andato e ho fatto qualche ricerca in più sul comando prevedono e ho scoperto che ha un comando send_tty che invia a / dev / tty invece di stdin, che potrebbe effettivamente fare quello che vuoi ... In precedenza non ero a conoscenza di questa funzione. Consiglio comunque di inserire la chiave sul server.

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