2012-08-25 18 views
78

ho bisogno di eseguire ssh da riga di comando di Windows fornendo la password in modo non interattivo. Mi potrebbe implementare l'autenticazione basata su chiave e in grado di eseguire i comandi ssh, proprio comeeseguire ssh con autenticazione tramite password tramite prompt dei comandi di Windows

ssh <user>@<host> <command> 

c'è qualche comandi come

ssh <user>@<host> -P <password> <command> 

enter image description here

Non so se è fattibile. Tuttavia, ci può essere un po 'di lavoro in giro per lo stesso. Lanciami qualche idea per realizzare lo stesso.

+2

L'utilizzo dell'autenticazione basata su chiave è un'idea molto migliore. –

+0

Sì, ho anche bisogno di un'autenticazione basata su password. – Balachandar

+9

@GregInozemtsev mentre questo è il caso, a volte è necessario che uno script rapido e sporco faccia qualcosa di simile, specialmente in un test o in un altro ambiente in cui non è richiesta la pura sicurezza. – TheJosh

risposta

10

Il plink di PuTTY ha uno command-line argument for a password. Alcuni altri suggerimenti sono stati fatti in the answers to this question: usando Expect (che è disponibile per Windows), o scrivendo un launcher in Python con Paramiko.

+0

@Birla plink è specificamente un programma Windows, sia Pexpect che Paramiko sono disponibili su Windows. –

158

L'utilità sshpass si riferisce esattamente a questo. In primo luogo, installare sshpass digitando il seguente comando:

sudo apt-get install sshpass 

Poi fallo precedere il vostro comando ssh/SCP con

sshpass -p '<password>' <ssh/scp command> 

Questo programma è facile da installare quando si utilizza Linux.

L'utente deve considerare l'utilizzo dell'autenticazione a chiave pubblica più sicura di SSH (con il comando ssh).

+8

Anche per rsync – TheJosh

+0

Non del tutto sicuro di come un programma di utilità Linux (che può essere programmato per Cygwin, ma che è un livello completamente diverso di sysadmining) ottenga 64 voti positivi ... e Plink che fa esattamente ciò che Chiesto OP e non richiede alcun lavoro aggiuntivo (ed è probabilmente già installato sul loro sistema in primo luogo) ottiene 1. Io tendo a fidarmi di Stack su queste cose, quindi se c'è una buona ragione per saltare in generale cerchi fastidiosi e occasionalmente esasperanti di make ... er ... Sono sinceramente curioso di sapere perché ha tanto amore. – OhkaBaka

+14

Perché il titolo non include "windows" e appare in alto nell'elenco quando si cerca questo per Linux/Unix/Mac. Quindi, rispondere a questa domanda fa risparmiare tempo. – Frobbit

24

Che dire di questo script previsto?

#!/usr/bin/expect -f 
spawn ssh [email protected] 
expect -exact "[email protected]'s password: " 
send -- "mypassword\r" 
interact 
+0

Dice che non ho lo script previsto –

+0

'expect' è notoriamente sottovalutato! –

Problemi correlati