Daten verschlüsselt zu einem Server hoch- bzw. herunterladen.
Hierfür bietet der Open Source Telnet/SSH Client PuTTY mehrere Möglichkeiten.

Proramme:

PuTTY Configuration

PuTTY.exe
Die Voreinstellung des Zeichensatzes ist ISO-8859-1:1998 (Latin-1, West Europe).
Speziell für Sprachen mit Umlauten und sonstigen Zeichen ausserhalb es ASCII-Code-Zeichensatzes gibt es bei dieser Voreinstellung Probleme beim Herunterladen. Auch bein Hochladen kann es Zeichensatzprobleme geben wenn die hochgeladenen Dateien mit einem FTP-Client angezeigt werden soll. Es geht aber nur um die Zeichenkodierung.
Um diesem Problem aus dem Weg zu gehen sollte einfach die Zeichenkodierung auf ISO-8859-15:1999 (Latin-9, "euro") umgestellt werden.
Hierzu muss ein Registry Eintrag erstellt werden. Dies geht recht einfach mit der PuTTY Konfiguration.
1.) PUTTY starten und im Pfad Window -> Translation den "Cahrakter set" auf ISO-8859-15 setzen.
2.) In Session bei "Saved Session" einen Namen z.B deutsch-de (am besten ohne Leerzeichen) eingeben und mit Save speichern.
3.) Leider speichert die Configuration mehr als benötigt wird. So kann/muss die Registry angepasst werden.
im Schlüssel [HKEY_CURRENT_USER \ Software \ SimonTatham \ PuTTY \ Sessions \ deutsch-de] sind die Einstellungen gespeichert.
Hier können alle Einträge bis auf LineCodePage gelöscht werden.

PuTTY Secure Copy client

pscp.exe

Parameter:  
-r rekursiv * alle Dateien und alle Unterordner
*xyz (alle Dateien und kompletter Inhalt aller Ordner welche auf xyz enden)
geht nur wenn der Platzhalter für die Dateinamen der * (Asterix ist). anderfalls werden nur jene Dateien kopiert welche in das Muster passen. Ausserdem wird kein Unterordner kopiert.
-q quit beim Ablauf der Kopierfolge wird nichts an die CMD-Shell ausgegeben
-batch   interaktiven Eingaben abgeschalten. Vorher ohne Batch-Schalter testen da das Script nicht abbricht wenn z.B das Passwort nicht mitgegeben wird (mit STRG-c abschießen). Der PGP-Key muss ebenfalls lokal gespeichert sein.
-pw Passwort Wird mit einem Leerzeichen nach dem Optionsschalter angegeben. Sollte das PW ein Leerzeichen enthalten dann muss es mit Anführugnszeichen gekapselt werden.
-scp   Das scp-Protokoll zwinged benutzen. Wenn eine * (Asterix) im Dateinamen enthalten ist gibt es Probleme beim download der Dateien. Es muss dann noch der Schalter -unsafe hinzugefgt werden damit auf der Serverseite Wildcards erlaubt sind
-sftp   Das sfcp-Protokoll zwinged benutzen. Ohne einschränlung im Verleich zu -scp
-C Kompression (Größes C) Die Kompression wird eingeschaltet für eine schnellere Übertragung
-l username Wenn der Login-Name nicht unmittelbar vor den @ der Serverbenennung steht muss der username mit dem Schalter -l angegeben werden
-p   Datei-Arttribute beim kopieren erhalten
-P Port (Größes P) den Port angeben. Falls nicht der default SSH Port 22 verwendet werden soll
-1 -2 SSH-Protokoll Bestimmte SSH-Protokoll Version erzwingen SSH1 oder SSH2
-4 -6   IPv4 bzw IPv6 zwingend verwenden
-pgpfp   PGP-Schlüssel Fingerabtruck ausgeben

Beim ersten Verbinden mit dem Server kommt folgende Meldung:
----------------------------------------------------------------------------------
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:kk:ll:mm:nn:oo:pp
If you trust this host, enter "y" to add the key to PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the connection.
Store key in cache? (y/n)
----------------------------------------------------------------------------------
Mit "y" wird der PHP-Key in die Registry als Zeichenfolge in folgenden Ordner gespeichert:
[HKEY_CURRENT_USER \ Software \ SimonTatham \ PuTTY \ SshHostKeys]
Name: rsa2@22:meineserveradresse.de Wert: 0x23,0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

-load sessname
 
Bei Umlauten und sonstigen Sonderzeichen muss mit PuTTy.exe eine Session erzeugt werden.
Siehe oben bei PuTTY Konfigurieren. Den Namen der erzeugten Session angeben und den Parameter -load deutsch-de verwenden und schon werden die Umlaute korrekt verarbeitet.

Mit dem Server verbinden
Benutzername: username
Server-URL: meineserveradresse.de
Entferner Pfad: /server_datei_pfad/unterpfad/
Datei(en) zum herunter laden: *  für alle Dateien oder z.B. test.txt
lokaler Pfad: c:\tmp\
Datei-Typ:
* (Asterix) alleine, ohne weitere Zeichen, kann muss aber nicht angegeben werden.
Alle weiteren Dateimaskierungen wie unter Windows üblich.

Datei(en) vom Server herunter laden:
pscp.exe -q -batch -pw "geheimes Passwort" username@meineserveradresse.de:/server_datei_pfad/unterpfad/* c:\tmp\
Datei(en) zum Server hoch laden:

pscp.exe -q -batch -pw "geheimes Passwort" c:\tmp\* username@meineserveradresse.de:/server_datei_pfad/unterpfad/

PuTTY Secure File Transfer Protokol

psftp.exe
Parameter:
   
-pw
Passwort
Wird mit einem Leerzeichen nach dem Optionsschalter angegeben.
+ Sollte das PW ein Leerzeichen enthalten dann muss es mit Anführungszeichen gekapselt werden.
+ Sollte ein " (Anfürungszeichen) im Passwort vorkommen dann das Passwort mit "" kapseln und zusätzlich ein \ (Backslash) vor das " setzen.
etwa so bei folgenden PW:  diese "geheime" Wort -> "diese \"geheime\" Wort"
-C  
(Größes C) Die Kompression wird eingeschaltet für eine schnellere Übertragung
-P  
(Größes P) den Port angeben. Falls nicht der default SSH Port 22 verwendet werden soll
-1 -2 SSH-Protokoll Bestimmte SSH-Protokoll Version erzwingen SSH1 oder SSH2
-4 -6   IPv4 bzw IPv6 zwingend verwenden
-pgpfp   PGP-Schlüssel Fingerabtruck ausgeben

Beim ersten Verbinden mit dem Server kommt folgende Meldung:
----------------------------------------------------------------------------------
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:kk:ll:mm:nn:oo:pp
If you trust this host, enter "y" to add the key to PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the connection.
Store key in cache? (y/n)
----------------------------------------------------------------------------------
Mit "y" wird der PHP-Key in die Registry als Zeichenfolge in folgenden Ordner gespeichert:
[HKEY_CURRENT_USER \ Software \ SimonTatham \ PuTTY \ SshHostKeys]
Name: rsa2@22:meineserveradresse.de Wert: 0x23,0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

-l  
Wenn der Login-Name nicht unmittelbar vor den @ der Serverbenennung steht muss der username mit dem Schalter -l angegeben werden
-load sessname
 
(Hat mit psft nicht funktioniert ;-)
-b file
  Batch-Datei mit der ftp-Befehlsfolge für den automatischen Ablauf
-be   Bei Fehlern in der Batch-Datei nicht unterbrechen
-batch   interaktiven Eingaben abgeschalten. Vorher ohne Batch-Schalter testen da das Script nicht abbricht wenn z.B das Passwort nicht mitgegeben wird (mit STRG-c abschießen). Der PGP-Key muss ebenfalls lokal gespeichert sein.

Mit dem Server verbinden
Benutzername: username
Server-URL: meineserveradresse.de
psftp.exe -load Session_Name_mit_PuTTY_erstellt -pw "geheimes Passwort" -b Batch-Command-File -be username@meineserveradresse.de
Entferner Pfad: /server_datei_pfad/unterpfad/
Lokaler Pfad: c:\tmp\
Datei-Typ:
* (Asterix) alleine, ohne weitere Zeichen, kann muss aber nicht angegeben werden.
Alle weiteren Dateimaskierungen wie unter Windows üblich.
Datei(en) vom Server herunter laden:
Inhalt der Batchdatei wenn einzelne Dateien herunter geladen werden soll mit kompletten Pfaden und Datei-Namen. Beide absolute Pfade.
 
get /server_datei_pfad/unterpfad/test.txt c:\tmp\test.txt
quit

oder (ohne Server-Pfad/Datei-Name, durch wechseln des aktiven Pfades). Relativ auf dem Server, lokal absoluter Pfad.

cd /server_datei_pfad
cd unterpfad
get test.txt c:\tmp\test.txt
quit
Inhalt der Batchdatei wenn eine Datei-Gruppe samt Unterordner herunter geladen werden soll.
Abhilfe: Vorher in den Zielfpad wechseln und dort psftp mit absoluten Pfad starten.
c:\test>c:\putty\psftp -load Session_Name_mit_PuTTY_erstellt -p "geheimes Passwort" -b Batch-Command-File -be username@meineserveradresse.de
Problem:
Beim Wechseln des lokal Pfades hat es nicht immer geklappt deshalb einfach beide Methoden anwenden (! und l)
!cd c:\test
lcd c:\test
mget /server_datei_pfad/unterpfad/* (kopiert alle Dateien nach c:\test)
quit

 

Datei(en) zum Server hoch laden:
Inhalt der Batchdatei wenn einzelne Dateien hochladen werden soll mit kompletten Pfaden und Datei-Namen. Beide absolute Pfade.
put c:\tmp\test.txt /server_datei_pfad/unterpfad/test.txt
quit
oder (ohne Server-Pfad/Datei-Name, durch wechseln des aktiven Pfades). Lokal absoluter Pfad, relativ auf dem Server.
cd /server_datei_pfad
cd unterpfad
put c:\tmp\test.txt
quit
oder (ohne Server-Pfad, durch wechseln des aktiven Pfades mit umbenennen). Lokal absoluter Pfad, relativ auf dem Server
cd /server_datei_pfad/unterpfad
put c:\tmp\test.txt neuer_name_test.txt
quit
oder (mit umbenennen) Beide absolute Pfade
put c:\tmp\test.txt /server_datei_pfad/unterpfad/neuer_name_test.txt
quit
Inhalt der Batchdatei wenn eine Datei-Gruppe hochgeladen werden soll
cd /server_datei_pfad
cd unterpfad
mput c:\tmp\*.txt
quit
Inhalt der Batchdatei wenn eine Datei-Gruppe samt unterordner hochgeladen werden soll
cd /server_datei_pfad
cd unterpfad
mput c:\tmp\*
quit
 
sonstige Befehle:
mit dem Befehl help in der psftp shell können alle verfügbaren Befehle aufgelistet werden.