Proste polecenie połączenia z serwerem FTPS w wierszu poleceń systemu Linux

17

Mam serwer FTP i FTPS, z którym mogę łatwo łączyć się za pomocą FileZilla. Szukam metody linux CLI. Myślałem, że lftpto robi, ale wydaje się to dziwne. Czy jest inny sposób?

Oto metoda, którą znalazłem w Google, aby połączyć się z moim FTPS lftp. Ale mam nadzieję, że istnieje łatwiejszy sposób:

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 '

Kod, który mam powyżej, wygląda na to, że zawiedzie - jeszcze go nie wypróbowałem, ponieważ mi się nie podoba, wiem, że \trzeba znaleźć się na końcu linii.

Szukam dużo prostszej linijki. Oto jak łączę się z dowolnego klienta FileZilla i działa:

ftps://username:[email protected]/

Działa to również:

ftps://username:[email protected]/
użytkownik240137
źródło
Prawdopodobnie powinieneś podzielić to na dwa różne pytania, ponieważ tak naprawdę są.
Taegost

Odpowiedzi:

10

Nie wiem, czy to nie było dostępne w wersji lftp 2013, ale teraz możesz po prostu zrobić:

lftp -u YOUR_USER HOST_ADDRESS

Na przykład, aby połączyć się 192.168.1.50z hostem z użytkownikiem test, wpisz tylko:

lftp -u test 192.168.1.50
McSonk
źródło
1
Działa świetnie dla mnie. Poparłem to i przegłosowałem wszystko przed tym.
ArtOfWarfare
9

Jeśli przez dziwny masz na myśli długą linię poleceń zawierającą oba typy cudzysłowów, po prostu tego unikaj. Użyj skryptu i zapisz zakładkę. Prawdopodobnie nie ma lepszych klientów ftp niż lftp.

  1. zapisz skrypt lftp w pliku
  2. uruchom lftp bez żadnych argumentów
  3. źródło skryptu
  4. zapisz zakładkę.
  5. usuń skrypt (aby pozbyć się hasła jawnego tekstu)

Użyj zakładki w przyszłości. Będziesz musiał dowiedzieć się, czy opcje ssl są zapisane dla zakładki, czy też musisz zachować te ustawienia za pomocą globalnego pliku konfiguracyjnego lftp.


Przykładowy skrypt.

$ 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

Próbka wyjściowa.

$ lftp
lftp :~> source  lftp.ssl.commands
lftp HOSTNAME:~> dir
`ls' at 0 [Connecting...]
Ярослав Рахматуллин
źródło
6

Lub możesz to zrobić w skrypcie bash:

#!/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

Nie powinno to powodować żadnych trwałych zmian lftp w /etc/lftp.conf lub ~ / .lftprc lub ~ / .lftp / rc

RyanS
źródło
3

nie powiedzie się na niektórych serwerach, ponieważ ustawienia ssl powinny zostać przekazane, zanim polecenie otwarcia nie będzie w nim zawarte. przykład działania jednego:

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
źródło
2

Próbuję połączyć się z serwerem proftpd z powyższą konfiguracją, ale nie może się zalogować, więc kiedy spróbuję, będzie w porządku.
1. Utwórz plik konfiguracyjny skryptu

vi .lftprc

z poniższą treścią:

ustaw ftp: ssl-auth TLS
ustaw ftp: ssl-force true
ustaw ftp: ssl-protect-list tak
ustaw ftp: ssl-protect-data tak
ustaw ftp: ssl-protect-fxp tak
ustaw ssl: weryfikuj certyfikat nie

  1. Następnie połącz się z serwerem:

    nazwa użytkownika lftp @ nazwa hosta

i to już wszystko dla mnie OK!

quan.nd
źródło