Michael Schröpl: Dateien sicher von einem Server zum anderen Schicken

Beitrag lesen

Hi Andreas,

Nein - SSH ist natürlich beidseitig.
Aber es gibt auch SSH-Clients für Windows.
(ich verwende immer PuTTY:
http://www.chiark.greenend.org.uk/~sgtatham/putty/)
:-) Hab ich ja! Ich wußte nur nicht, ob man das
mit so einem Client auch automatisieren kann.

Vorsicht!

SSH ist - wie HTTP - ein Client-Server-Protokoll.
Wenn Du auf der Maschine A den Vorgang, Daten zur
Maschine B zu senden, anstoßen willst (mit scp),
dann brauchst Du auf Maschine A den Client und auf
Maschine B den SSH-Server. Der Client ist es, der
die Initiative für einen Auftrag ausübt; der Server
dagegen kann viele Aufträge gleichzeitig verarbeiten.

So, wie ich Deine Anforderung allerdings verstanden
habe, ist Maschine A ein UNIX-Server (der hätte den
SSH-Server) und Maschine B ein Windows-Rechner (der
hätte nur den SSH-Client).
Das würde bedeuten, daß Du die Übertragung vom
Rechner B aus anstoßen müßtest.

Da gibt es ja auch das Commandline-Tool von Putty,
ich habe glücklicherweise auf dem Rechner Apache,
PHP und PERL installiert. Also könnte ich ja mnit
System einen entsprechenden Aufruf machen.

Genau das würde ich _nicht_ tun.
Denn in diesem Falle ("system(scp)" via CGI) kann Dir
der CGI-Timeout des Apache weh tun, was Du ja genau
vermeiden möchtest.
Dann würde ich schon lieber auf den "cron" verzichten
und auf der Windows-Maschine die Automatik zur Daten-
abholung realisieren.

Müßte nur sichergestellt sein, das zu diesem Zeit-
punkt eine Internetverbindung besteht, was bei DSL
nicht wirklich einfach zu realisieren ist!

Die zugrundeliegende Verbindung brauchst Du aber immer

  • egal, von welcher Seite aus die Initiative zur
    Datenübertragung ausgeht.

Ja, genau so siehts aus. Da gibts ja PSCP und PSFTP,
aber mit dem FTP-Tool wohl besser nicht, oder?

Ich kenne die konkreten Tools nicht, würde aber doch
empfehlen, irgendwas aus der FTP-Schiene zu nehmen.
Dort hast Du mehr Fehlerdiagnosemöglichkeiten als
bei scp - Du willst ja auch erkennen können, ob die
Übertragung funktioniert hat, Du willst Protokoll-
Informationen aufzeichnen lassen usw. (das schließe
ich aus "cron" aus "Aufrtraggeber", was für mich eine
"Produktionsumgebung" impliziert).

In diesem Falle wäre auf dem Windows-Rechner eine
Server-Software für die entsprechende FTP-Variante
zu installieren - und dann wäre "cron" als Initiativ-
geber wieder okay.

Und das 2. Problem - ich muß vorher auf dem Linux-
Server die Datei erst erzeugen.
Wie kann ich das denn wohl kombinieren?

Wenn das so ist, dann scheidet m. E. die Initiative
von Windows-Seite aus.
(Und damit auch die scp-Methode.)
Die Übertragung sollte ein success-event der Erzeugung
der Datei sein. Alles andere ist Glücksspiel.

Sollte ich vielleicht in einem PHP-Script auf dem
Windows-Rechner erst das entfernte Script zum
Erzeugen der Daten ausführen(fsockopen()), und dann
evtl noch sleep(10) und dann über system() die SSH-
Verbindung herstellen und die Daten kopieren?

Vorstellbar - aber m. E. viel zu kompliziert.

Oder hälst Du diese Methode in so einem Fall nicht
für angebrach? Was hälst Du von den 3 anderen
angesprochenen Möglichkeiten, oder was könnte man
noch machen?

Ich finde die Idee, einen FTP-artigen Server auf der
Windows-Maschine zu installieren und die gesamte
Ablauf-steuerung der UNIX-Maschine zu überlassen,
am naheliegendsten.

Was die Verschlüsselung angeht: Ich habe in Erinnerung,
daß hier im Forum erst kürzlich eine FTP-Variante mit
Verschlüsselung erwähnt wurde, finde aber im Moment
keinen passenden Archiv-Suchbegriff dazu.

Viele Grüße
      Michael

P.S.: Lesetip: http://aktuell.de.selfhtml.org/artikel//server/linux/software.htm#winscp