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

15

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, lftptut es, aber es scheint komisch. Gibt es eine andere Art und Weise?

Hier ist die Methode, die ich bei Google gefunden habe, um eine Verbindung zu meinem FTPS herzustellen lftp. 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 er mir nicht gefällt. Ich weiß, \dass ich 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]/
user240137
quelle
Sie sollten dies wahrscheinlich in zwei verschiedene Fragen unterteilen, da dies tatsächlich der Fall ist.
Taegost

Antworten:

8

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...]
Ярослав Рахматуллин
quelle
8

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 zum Host 192.168.1.50mit dem Benutzer herzustellen test, geben Sie nur Folgendes ein:

lftp -u test 192.168.1.50
McSonk
quelle
1
Hat toll für mich funktioniert. Hat dies positiv bewertet und alles davor negativ bewertet.
ArtOfWarfare
5

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

RyanS
quelle
3

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'
Abu-Sadek
quelle
2

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

vi .lftprc

mit untenstehendem Inhalt:

set ftp: ssl-auth TLS
set ftp: ssl-force true
set ftp: ssl-protect-liste yes
set ftp: ssl-protect-data yes
set ftp: ssl-protect-fxp yes
set ssl: verify-certificate no

  1. Danach stellen Sie eine Verbindung zum Server her:

    lftp Benutzername @ Hostname

und das ist alles in Ordnung für mich jetzt!

quan.nd
quelle