Via ssh Dateien auf / von Server kopieren / verschieben
-
- Beiträge: 16
- Registriert: So 21. Jan 2018, 09:27
Via ssh Dateien auf / von Server kopieren / verschieben
Moin moin,
für mein Datenbankprojekt würde ich gerne Dateien vom Client (Linux) auf meinen Server (Synology NAS) via SSH kopieren oder ggf verschieben. Ebenso würde ich später gerne diese Dateien via SSH vom Server abrufen und anzeigen bzw. auf den Client kopieren.
Vielleicht habe ich auch nur Tomaten auf den Augen, doch kann ich keinen Befehl oder keinen Code finden der mir hier helfen könnte.
Daher meine Frage: Gibt es die Möglichkeit und wenn ja, gibt es dazu ein Code Beispiel, wie ich Dateien via SSH kopiere oder verschieben kann?
mfg
Tobias
für mein Datenbankprojekt würde ich gerne Dateien vom Client (Linux) auf meinen Server (Synology NAS) via SSH kopieren oder ggf verschieben. Ebenso würde ich später gerne diese Dateien via SSH vom Server abrufen und anzeigen bzw. auf den Client kopieren.
Vielleicht habe ich auch nur Tomaten auf den Augen, doch kann ich keinen Befehl oder keinen Code finden der mir hier helfen könnte.
Daher meine Frage: Gibt es die Möglichkeit und wenn ja, gibt es dazu ein Code Beispiel, wie ich Dateien via SSH kopiere oder verschieben kann?
mfg
Tobias
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Meinst du SFTP?
Da gibt es hier was:
http://synapse.ararat.cz/files/contrib/sftp.zip
EDIT: Hab's mir mal kurz angeschaut. Das Ist für Delphi/Windows.
Das liesse sich wahrscheinlich portieren, aber es wohl nicht ganz ohne Aufwand auf Lazarus/Linux zu übertragen.
Da gibt es hier was:
http://synapse.ararat.cz/files/contrib/sftp.zip
EDIT: Hab's mir mal kurz angeschaut. Das Ist für Delphi/Windows.
Das liesse sich wahrscheinlich portieren, aber es wohl nicht ganz ohne Aufwand auf Lazarus/Linux zu übertragen.
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Wenn es nur um einzelne Dateien geht, könntest du auch scp als externes Programm aufrufen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Via ssh Dateien auf / von Server kopieren / verschieben
SFTP ist in SecureBridge von Devart drin.
Paket mit Source für Delphi und Lazarus kostet allerdings ein paar Steine.
Man muss für Lazarus das "Source Paket" nehmen... in den kleineren Ausgaben ist Lazarus nicht dabei.
Ich setzte das schon länger ein... geht 1a auch mit Mysql/mariadb Zugriff über den SSH Tunnel und Port Switching; kann ich empfehlen
Paket mit Source für Delphi und Lazarus kostet allerdings ein paar Steine.
Man muss für Lazarus das "Source Paket" nehmen... in den kleineren Ausgaben ist Lazarus nicht dabei.
Ich setzte das schon länger ein... geht 1a auch mit Mysql/mariadb Zugriff über den SSH Tunnel und Port Switching; kann ich empfehlen
Gruß, Michael
-
- Beiträge: 16
- Registriert: So 21. Jan 2018, 09:27
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Hallo,
ich habe es soweit hinbekommen. Leider weiß ich aber nun nicht, wie ich das Passwort für scp mit übergeben kann.
Wie rufe ich scp nun korrekt auf? Ich will nicht, dass meine Frau für jede Datei die kopiert wird ein Passwort eingeben muss.
mfg
Tobias
ich habe es soweit hinbekommen. Leider weiß ich aber nun nicht, wie ich das Passwort für scp mit übergeben kann.
Code: Alles auswählen
var
Process1 : TProcess;
begin
Process1 := TProcess.Create(nil);
Process1.Executable := 'scp';
Process1.Parameters.add('-P 1223');
Process1.Parameters.add('/home/tobias/Test.pdf');
Process1.Parameters.Add('mariadbuser@192.168.178.40:/volume1/Datenbank');
Process1.Execute;
end;
mfg
Tobias
-
- Lazarusforum e. V.
- Beiträge: 366
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 3.6, FPC 3.2.2)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Option 1: SSH Config File und dort das Passwort hinterlegen.
Option 2: Keys verwenden und den als Parameter mit übergeben.
Beides geht und funktioniert bei SCP wie bei SSH gleich...
Option 2: Keys verwenden und den als Parameter mit übergeben.
Beides geht und funktioniert bei SCP wie bei SSH gleich...
Tipp für PostgreSQL: www.pg-forum.de
-
- Beiträge: 16
- Registriert: So 21. Jan 2018, 09:27
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Ziel sollte es sein, dass ich jemanden mein Programm geben kann und das dann, meine Software ohne viele Eingriffe ins System oder sonstige Einstellungen sofort die Daten verschieben / kopieren kann.
Daher wäre für mich eine Lösung die ich vollständig in freePascal / Lazarus erledigen kann die Goldrandlösung.
mfg
Tobias
Daher wäre für mich eine Lösung die ich vollständig in freePascal / Lazarus erledigen kann die Goldrandlösung.
mfg
Tobias
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Dann kannst du die Config-File auch per Programm anlegen und über den Parameter -F <config_file> angeben. Soweit ich herausgefunden habe, kann man dort aber kein Kennwort hinterlegen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 16
- Registriert: So 21. Jan 2018, 09:27
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Genau das ist aber was ich brauche.
Zum Hintergrund. Ich möchte eine Datenbank anlegen (habe ich schon soweit lauffähig) bei der ich auch viele Dateien mit abspeichern will. Also PDF, Videos und Bilder. Da ich die aber nicht alle in die Datenbank packen will, (zu mindestens rät mir jeder davon ab) möchte ich diese Dateien parallel zum anlegen des Datensatzes in ein Verzeichnis auf den Server verschieben. Am besten so, dass der User, in dem Fall meine Familie, keinen direkten Zugriff mehr auf diese Daten außerhalb der Datenbank hat. Daher mein Gedanke dies im Hintergrund mit scp und einem hinterlegten Passwort zu machen. Nach Möglichkeit sollte auch alles in einem Programm vereint sein und ohne zusätzliche Konfiguration oder Einstellungen funktionieren. Soweit meine Idee.
Bin natürlich für jede neue oder andere Idee zu haben und Dankbar wenn ich einen neuen Lösungsansatz mit ggf etwas Code bekommen kann.
mfg
Tobias
Zum Hintergrund. Ich möchte eine Datenbank anlegen (habe ich schon soweit lauffähig) bei der ich auch viele Dateien mit abspeichern will. Also PDF, Videos und Bilder. Da ich die aber nicht alle in die Datenbank packen will, (zu mindestens rät mir jeder davon ab) möchte ich diese Dateien parallel zum anlegen des Datensatzes in ein Verzeichnis auf den Server verschieben. Am besten so, dass der User, in dem Fall meine Familie, keinen direkten Zugriff mehr auf diese Daten außerhalb der Datenbank hat. Daher mein Gedanke dies im Hintergrund mit scp und einem hinterlegten Passwort zu machen. Nach Möglichkeit sollte auch alles in einem Programm vereint sein und ohne zusätzliche Konfiguration oder Einstellungen funktionieren. Soweit meine Idee.
Bin natürlich für jede neue oder andere Idee zu haben und Dankbar wenn ich einen neuen Lösungsansatz mit ggf etwas Code bekommen kann.
mfg
Tobias
-
- Lazarusforum e. V.
- Beiträge: 366
- Registriert: So 5. Mai 2019, 16:52
- OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 3.6, FPC 3.2.2)
- CPU-Target: x86_64, i386
- Wohnort: Bayreuth
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Das ist korrekt und war mein Fehler. In einer Konfigurationsdatei kann kein Passwort hinterlegt werden. Dort können nur die Parameter für die Verbindung definiert werden. Das Passwort muss dann noch eingegeben werden.Soweit ich herausgefunden habe, kann man dort aber kein Kennwort hinterlegen.
Ich würde hier eine Authentifizierung per Key machen. Jeder hat einen key und wenn der stimmt, dann klappt der Login. Einfach zu realisieren, sicherer (da viel komplexer als ein Passwort) und erlaubt einen automatisierten Login.
Tipp für PostgreSQL: www.pg-forum.de
-
- Beiträge: 16
- Registriert: So 21. Jan 2018, 09:27
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Sorry wenn ich jetzt vielleicht ein wenig blöd frage, doch wie mache ich das? Das mit scp habe ich gerade noch so hinbekommen. Bei dem Rest steige ich aktuell gerade aus.
Wie gesagt, meine Kenntnisse beschränken sich wirklich nur auf den Hausgebrauch.
mfg
Tobias
Wie gesagt, meine Kenntnisse beschränken sich wirklich nur auf den Hausgebrauch.
mfg
Tobias
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Hier gibt's ein Tutorial, wie die Keys generiert werden: https://www.heise.de/tipps-tricks/SSH-K ... 00280.html
Am Ende muss der öffentliche Schlüssel natürlich noch auf dem Server abgelegt werden; das geht entweder manuell (auf die Dateiberechtigungen achten!) oder per Befehl ssh-copy-id (siehe Link). Dort muss dann nur einmal ein Kennwort eingegeben werden.
Willst du ssh-copy-id auch aus deinem Programm heraus im Hintergrund aufrufen, kommst du hier nicht darum hin, über TProcess die Ausgabe von ssh-copy-id auszulesen und das Kennwort dan das Programm zu übergeben.
Am Ende muss der öffentliche Schlüssel natürlich noch auf dem Server abgelegt werden; das geht entweder manuell (auf die Dateiberechtigungen achten!) oder per Befehl ssh-copy-id (siehe Link). Dort muss dann nur einmal ein Kennwort eingegeben werden.
Willst du ssh-copy-id auch aus deinem Programm heraus im Hintergrund aufrufen, kommst du hier nicht darum hin, über TProcess die Ausgabe von ssh-copy-id auszulesen und das Kennwort dan das Programm zu übergeben.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 16
- Registriert: So 21. Jan 2018, 09:27
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Uff, alles komplizierter wie ich dachte.
Im Stillen hatte ich gehofft, dass ich nur ein paar Parameter an scp übergeben muss und fertig. Oder noch besser, wenn es eine entsprechende Funktion oder einen Befehl dafür geben würde. Na mal sehen ob ich es hin bekomme. Werde ich wohl heute Abend viel zu lesen haben.
mfg
Tobias
Im Stillen hatte ich gehofft, dass ich nur ein paar Parameter an scp übergeben muss und fertig. Oder noch besser, wenn es eine entsprechende Funktion oder einen Befehl dafür geben würde. Na mal sehen ob ich es hin bekomme. Werde ich wohl heute Abend viel zu lesen haben.
mfg
Tobias
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Ich greife dies mal kurz auf.
Bilde mir sogar ein, das es eine mgl gab, den Befehl so zu senden.
zumindest irgendwie in der Richtung hatte ich mal was im Filter.
Über dies https://wiki.ubuntuusers.de/SSH/#ssh-confighatte ich mir später mal ein Script geschrieben, ob von zB der Artbeit ein meinen Server zuzugreifen.
Somit wäre es ja eigentlich möglich das Tool, das gewünscht wird so zu schreiben, das alle Parameter max beim Start eigelesen werden und alle Files in einer Art Memolist eingetragen werden.
Zielverzeichnis rein und schon sollte der Spaß laufen.
Auf den Prozesstimer würde ich aber auch da nicht verzichten.
Jetzt aber nur noch eine Frage am rande.
unter welchen Plattformen soll es laufen?
Bilde mir sogar ein, das es eine mgl gab, den Befehl so zu senden.
Code: Alles auswählen
ssh <user>*<passwd>@Host
Über dies https://wiki.ubuntuusers.de/SSH/#ssh-confighatte ich mir später mal ein Script geschrieben, ob von zB der Artbeit ein meinen Server zuzugreifen.
Somit wäre es ja eigentlich möglich das Tool, das gewünscht wird so zu schreiben, das alle Parameter max beim Start eigelesen werden und alle Files in einer Art Memolist eingetragen werden.
Zielverzeichnis rein und schon sollte der Spaß laufen.
Auf den Prozesstimer würde ich aber auch da nicht verzichten.
Jetzt aber nur noch eine Frage am rande.
unter welchen Plattformen soll es laufen?
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
Re: Via ssh Dateien auf / von Server kopieren / verschieben
Schon mal überlegt, einfach FTP zu nehmen?
Wenn du die Files nur in-house (hinter dem Router) verschiebst und sie nicht gerade hochbrisant sind, sehe ich da kein großes Problem.
Wenn du die Files nur in-house (hinter dem Router) verschiebst und sie nicht gerade hochbrisant sind, sehe ich da kein großes Problem.