it-swarm.com.de

Einfacher Befehl zum Herstellen einer Verbindung zum FTPS-Server über die Linux-Befehlszeile

Ich habe einen FTP- und FTPS-Server, mit dem ich mich problemlos mit FileZilla verbinden kann. Ich suche nach einer Linux-CLI-Methode. Ich dachte, lftp macht das, aber es scheint seltsam. Gibt es eine andere Art und Weise?

Hier ist die Methode, die ich bei Google gefunden habe, um mit lftp eine Verbindung zu meinem FTPS herzustellen. Aber ich hoffe, es gibt einen einfacheren Weg:

lftp -c 'open -e "set ftps:initial-prot ""; \
   set ftp:ssl-force true; \
   set ftp:ssl-protect-data true; \
   put test.txt; " \
   -u "USERNAME","PASSWORD" \
   ftps://HOSTNAME:990 '

Der Code, den ich oben bekommen habe, sieht aus, als würde er fehlschlagen. Ich habe ihn noch nicht ausprobiert, da ich ihn nicht mag. Ich weiß, dass der \ am Ende der Zeile stehen muss.

Ich suche einen viel einfacheren Einzeiler. So verbinde ich mich von einem FileZilla-Client aus und es funktioniert:

ftps://username:[email protected]/

Auch das funktioniert:

ftps://username:[email protected]/
13
user240137

Wenn Sie mit "seltsam" eine lange Befehlszeile mit beiden Arten von Anführungszeichen meinen, meiden Sie sie einfach. Verwenden Sie ein Skript und speichern Sie ein Lesezeichen. Es gibt wahrscheinlich keine besseren FTP-Clients als LFTP.

  1. speichern Sie Ihr LFTP-Skript in einer Datei
  2. führen Sie LFTP ohne Argumente aus
  3. quell das Skript
  4. speichern Sie ein Lesezeichen.
  5. lösche das Skript (um das Klartext-Passwort loszuwerden)

Verwenden Sie das Lesezeichen in der Zukunft. Sie müssen herausfinden, ob SSL-Optionen für das Lesezeichen gespeichert sind oder ob Sie diese Einstellungen über eine globale LFTP-Konfigurationsdatei beibehalten müssen.


Beispielskript.

$ cat lftp.ssl.commands
user moo foopass
set ftps:initial-prot "";
set ftp:ssl-force true;
set ftp:ssl-protect-data true;
open ftps://HOSTNAME:990

Beispielausgabe.

$ lftp
lftp :~> source  lftp.ssl.commands
lftp HOSTNAME:~> dir
`ls' at 0 [Connecting...]

Ich weiß nicht, ob dies in der Version 2013 von LFTP nicht verfügbar war, aber jetzt können Sie einfach Folgendes tun:

lftp -u YOUR_USER Host_ADDRESS

Um beispielsweise eine Verbindung zu Host 192.168.1.50 mit Benutzer test herzustellen, geben Sie nur Folgendes ein:

lftp -u test 192.168.1.50
6
McSonk

Oder Sie können dies in einem Bash-Skript tun:

#!/bin/bash
lftp <<SCRIPT
set ftps:initial-prot ""
set ftp:ssl-force true
set ftp:ssl-protect-data true
open ftps://<hostname>:990
user <user> <password>
lcd /tmp
cd <ftp_folder_hierarchy>
put foo.txt
exit
SCRIPT

Dies sollte keine dauerhaften LFTP-Änderungen in /etc/lftp.conf oder ~/.lftprc oder ~/.lftp/rc verursachen

5
RyanS

auf einigen Servern schlägt dies fehl, da SSL-Einstellungen übergeben werden sollten, bevor der Befehl open nicht darin enthalten ist. Beispiel für eine Arbeit:

lftp -c 'set ftp:ssl-allow true ; set ssl:verify-certificate no; open -u USERNAME,PASSWORD -e "cd /; mput LOCAL/PATH/TO/FILE/FILENAME.EXT; quit" Host'
3
Abu-Sadek

Ich versuche, mich mit der obigen Konfiguration mit dem Proftpd-Server zu verbinden, kann mich aber nicht anmelden. Wenn ich das versuche, ist es in Ordnung.
1. Erstellen Sie eine Skriptkonfigurationsdatei

vi .lftprc

mit untenstehendem Inhalt:

stellen Sie ftp: ssl-auth TLS ein
set ftp: ssl-force true
set ftp: ssl-protect-list yes
set ftp: ssl-protect-data yes
set ftp: ssl-protect-fxp yes
set ssl: verify-certificate no

  1. Stellen Sie danach eine Verbindung zum Server her:

    lftp Benutzername @ Hostname

und das ist alles OK für mich jetzt!

2
quan.nd