2014-04-15 8 views
5

Chcę skopiować jakiś plik do zdalnego systemu Linux z mojego komputera z systemem Windows przy użyciu pscp (z putty). Napisałem mały skrypt, który nazywamy polecenia PSCP w ten sposób:Polecenie automatycznego wprowadzania hasła dla 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 

Ale kiedy uruchomić ten skrypt bat, jestem proszony o wprowadzenie hasła, więc wpisać hasło ręcznie.

Czy istnieje sposób automatycznego wprowadzenia hasła przez plik wsadowy?

Odpowiedz

15

Od kit documentation

5.2.2.6 -pw passw logowania z podanym hasłem

Jeśli wymagane jest hasło, aby połączyć się z hostem, PSCP będzie interaktywnie zapyta cię za to. Jednak nie zawsze musi to być odpowiednie. Jeśli korzystasz z PSCP w ramach jakiegoś zadania zautomatyzowanego, to nie będzie możliwe ręczne wpisanie hasła. Opcja -pw do PSCP pozwala określić hasło do użycia w wierszu poleceń.

3

Możesz zająć się tymi sprawami. Użyj opcji /?, aby wyświetlić pomoc. Odpowiednie części są zawarte poniżej.

 
>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 
...... 

Użyj opcji -l i -pw określić użytkownika i hasło.

Podczas, gdy odpowiada to na konkretne pytanie, które zadałeś, prawdziwą okazją dla ciebie jest nauczenie się, jak uzyskać dokumentację z narzędzi wiersza poleceń.

0

Użyj putty, aby skonfigurować zdalne logowanie bez hasła. Będzie to obejmować polecenie puttygen. Będziesz potrzebować klucza prywatnego, a cel będzie wymagał klucza publicznego. Po sprawdzeniu, że masz dobry plik klucza prywatnego i zalogowaniu się bez wpisywania hasła, możesz odwołać się do niego za pomocą opcji "-i" klucza prywatnego na pscp. Możesz mieć możliwość ustawienia klucza bez połączenia z kitem, jeśli nie jest to dozwolone, ale jest to najprostszy sposób. Wystarczy powiedzieć, nie do haseł w jasny:

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

Potrzebujesz privatekey, a cel potrzebuje * * (określonego) publickey * pochodzącego z * twojego privatekey, w '.ssh/authorized_keys'. Ale jeśli twój plik privatekey ma hasło, które zazwyczaj powinno, nadal jesteś monitowany. Aby uniknąć * tego *, użyj 'pageant', który jest odpowiednikiem" ssh-agent "; zachowuje prywatny znak w pamięci i używa go bez ponownego monitowania, ale tylko do momentu wylogowania lub wyłączenia. –

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

Można użyć sshpass z -p opcja tuż przed pscp

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

Zauważyłem, że nikt nie pisał próbkę tego polecenia z - opcja pw.

+0

To była najprostsza i najlepsza najlepsza odpowiedź. –