Ich bin momentan in einer Situation, in der ich von meinen Kunden Flat Files per FTP erhalte. Einige Kunden haben darauf bestanden, SSH Private Key SFTP anstelle von normalem FTP zu verwenden.
Was ich tun möchte, ist einen Webserver einzurichten (vorzugsweise in Linux / Unix, aber ich denke, ich kann es auf einem Windows-Server tun und SFTP-Server-Software kaufen), die Folgendes tun:
Erlaube mir, ein SFTP-Verzeichnis für jeden Client mit einem eindeutigen Benutzer / Passwort einzurichten. Jedes Verzeichnis muss auch den öffentlichen / privaten Schlüssel SSH "stuff" haben Ich bin ein wenig neu, aber ich habe es gegooglet.
Sobald die Datei vollständig vom Client hochgeladen wurde, möchte ich ein Ereignis starten, das diese Datei über FTP in meine Windows Cloud überträgt.
Diese Dateien können bis zu 10 MB groß sein, so dass selbst die FTPs auf dem anderen Server nicht ausgelöst werden können, bis die Datei vollständig hochgeladen wurde.
Hat jemand so etwas eingerichtet? Jede Anleitung wäre willkommen.
Danke!
Unter Linux können Sie incon verwenden, um das Verzeichnis zu überwachen, in dem die Dateien gespeichert werden SFTP'd sein und deinen FTP-Job auslösen lassen. Es ist so etwas wie Cron, außer dass Jobs basierend auf der Zeit basierend auf Dateisystemänderungen ausgelöst werden. Um nur auszulösen, sobald die gesamte Datei geschrieben wurde, denke ich, dass Sie IN_CLOSE_WRITE in der Inotify-Maske verwenden können. Andernfalls schlage ich vor, Ereignisse für jedes der Ereignisse einzeln zu konfigurieren, um eine Nachricht in einer Protokolldatei wiederzugeben und festzustellen, ob Sie eine identifizieren können, die erst am Ende der SFTP-Übertragung zuverlässig erfolgt.
Wenn Sie RedHat verwenden, ist es nicht in der Standard-Distribution, aber es ist in EPEL .
Unter Windows können Sie die Titan FTP-Server Enterprise Edition verwenden, die SFTP unterstützt und verschiedene Definitionen ermöglicht Arten von Ereignissen. Wenn das Ereignis ausgelöst wird, können Sie alles, was Sie benötigen, für jeden Ordner / pro Konto starten.
PS. AFAIK, wenn es um SFTP geht, ist es entweder Passwort-Authentifizierung oder Authentifizierung mit öffentlichen Schlüsseln (SSH-Schlüssel), aber nicht beides.
Auf Ihrem UNIX-Server können Sie SSH so konfigurieren, dass ein benutzerdefinierter sftp-Server verwendet wird, der anstelle des SFTP-Protokolls selbst eine neue SSH-Verbindung zum Windows-SFTP-Server mithilfe der Kennwortauthentifizierung herstellt und den SFTP-Datenverkehr dorthin weiterleitet >
Das Schreiben des Proxy ist einfach mit den richtigen Tools, zum Beispiel in Perl mit dem Net :: OpenSSH Modul:
%Vor% Sie können den SSH-Server anweisen, diesen alternativen SFTP-Server zu verwenden, indem Sie die Konfiguration in /etc/ssh/sshd_config
ändern. Zum Beispiel:
Haben Sie Apache FTP Server versucht?
Ich denke, Sie können mit der ftplet-API tun, was Sie brauchen.
siehe: Ссылка