Python script - SCP på Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan er det muligt at gøre sikker kopi ved hjælp af python (Windows native install - ActivePython). Desværre er pexpect-modulet kun for unix, og vi vil ikke have cygwin lokalt. Jeg skrev et script, der bygger på pscp.exe win-værktøj - men stopper altid ved første udførelse, fordi der er fingeraftryk-host id. Og har ikke fundet mulighed for at skifte dette af.
De eksterne værter kører ssh-server på cygwin (win 2003-servere).


Tak

Bedste reference


paramiko er ret flot. Se dette spørgsmål for nogle flere detaljer. [2]

Andre referencer 1


Jeg anbefaler på det kraftigste, at du bruger nøgler frem for adgangskoder. Hvis du bruger ssh nøgler ordentligt, behøver du ikke bruge det, da scp-kommandoen ikke vil bede om nogen brugerindgang. Hvis du har kommandolinje ssh installeret, kan du lave en nøgle som denne:


ssh-keygen -t dsa


Så følg blot de anførte anvisninger og gem nøglen til standardplaceringen. Hvis du lægger en adgangskode på det, skal du bruge en slags ssh-agent, enten kommandolinjen ssh-agent eller pagent på windows. Du kan også oprette en ssh-nøgle med putty-pakken s puttygen.


For at oprette nøglen til godkendelse skal du blot lægge en kopi af id\_dsa.pub på den vært, du vil scp til, i filen ~/.ssh/authorized\_keys.

Andre referencer 2


http://pypi.python.org/pypi/ssh4py[4]


SCP eksempel: http://blog.keyphrene.com/keyphrene/index.php/2008/09/18/13-scp[5]

Andre referencer 3


Twisted Conch understøtter ssh og sftp. [6]

Andre referencer 4


Hvordan forventer du at levere godkendelsesdataene? Den nemmeste måde er at oprette en nøgle, og sørg for, at den er på serverens liste over accepterede værter. På den måde autentificerer scp automatisk med det private/offentlige nøglepar og 'bare arbejde'.


Dette er en praktisk vejledning om, hvordan man skal skabe og uploade nøglen. Det forudsætter selvfølgelig, at du har den nødvendige admin adgang til serveren. [7]