2014-04-15 5 views
5

Ich möchte eine Datei von meinem Windows-PC unter Verwendung von pscp (von putty) auf ein entferntes Linux-System kopieren. Ich schrieb ein kleines Skript, das die pscp Befehle auf diese Weise nennen:Befehl zum automatischen Eingeben des Passworts für pscp

"C:\Users\hp\Desktop\pscp.exe" -scp C:\Users\hp\Desktop\scripts\* [email protected]:/root/scripts 
"C:\Users\hp\Desktop\pscp.exe" -scp C:\Users\hp\Desktop\scripts2\* [email protected]:/root/scripts2 

pause 

Aber wenn ich diesen Fledermaus-Skript starten, ich bin zur Eingabe des Passworts aufgefordert, so dass ich das Passwort eingeben manuell.

Gibt es eine Möglichkeit, das Passwort automatisch über die Batch-Datei einzugeben?

Antwort

15

Von Kitt documentation

5.2.2.6 -pw passw Login mit dem angegebenen Passwort

Wenn ein Kennwort an den Host zu verbinden, erforderlich ist, PSCP wird interaktiv aufgefordert dafür. Dies muss jedoch nicht immer sein. Wenn Sie PSCP als Teil eines automatisierten Jobs ausführen, ist es nicht möglich, ein Kennwort von Hand einzugeben. Mit der Option -pw zu PSCP können Sie das Kennwort angeben, das in der Befehlszeile verwendet werden soll.

3

Sie können dieses Zeug für sich selbst arbeiten. Verwenden Sie die Option /?, um die Hilfe anzuzeigen. Die relevanten Teile sind unten enthalten.

 
>pscp /? 
PuTTY Secure Copy client 
Release 0.60 
Usage: pscp [options] [[email protected]]host:source target 
     pscp [options] source [source...] [[email protected]]host:target 
     pscp [options] -ls [[email protected]]host:filespec 
Options: 
...... 
    -l user connect with specified username 
    -pw passw login with specified password 
...... 

Verwenden Sie die -l und -pw Optionen einen Benutzer und ein Kennwort angeben.

Während dies die spezifische Frage beantwortet, die Sie gestellt haben, besteht die wahre Chance für Sie darin, zu lernen, wie Sie Dokumentation von Befehlszeilen-Dienstprogrammen erhalten.

0

Verwenden Sie Putty, um eine Remote-Anmeldung ohne Passwort einzurichten. Dies beinhaltet den Befehl puttygen. Sie benötigen einen privaten Schlüssel und das Ziel benötigt einen öffentlichen Schlüssel. Sobald Sie sich vergewissert haben, dass Sie eine gute private Schlüsseldatei haben und sich anmelden, ohne ein Passwort einzugeben, können Sie mit der privaten Schlüsseloption "-i" auf pscp darauf verweisen. Möglicherweise können Sie den Schlüssel ohne die Putty-Verbindung einrichten, wenn dies nicht erlaubt ist, aber dies ist der einfachste Weg. Sagen Sie einfach nein, um Passwörter im Klartext:

C:\Users\riglerjo>pscp -i .ssh\rigler_rsa.ppk test.txt [email protected]:. 
test.txt     | 0 kB | 0.0 kB/s | ETA: 00:00:00 | 100% 
+0

Sie benötigen einen privaten Schlüssel und das Ziel benötigt * das * (spezifische) publickey *, abgeleitet von * Ihrem privaten Schlüssel, in '.ssh/authorized_keys'. Aber wenn Ihre private Schlüsseldatei eine Passphrase hat, was normalerweise sollte, werden Sie immer noch aufgefordert. Um * das * zu vermeiden, benutze 'pageant', was das Putty-Äquivalent von' ssh-agent' ist; Es speichert Ihren privaten Schlüssel im Speicher und verwendet ihn ohne erneute Aufforderung, aber nur bis Sie sich abmelden oder herunterfahren. –

0
sshpass -p'password' pscp -A -H "ip" -t 20 -l root /var/www/html/temp_santosh.txt /tmp/ 

Sie sshpass mit -p Option vor nur verwenden können pscp

9
pscp -pw yourPasswordHere C:\Users\testUser\Downloads\test.sh [email protected]:/home/testUser 

ich, dass niemand mit Probe dieses Befehls geschrieben bemerkt haben - PW-Option.

+0

Dies war die einfachste und beste beste Antwort. –