2013-07-23 16:29:23 +0000 2013-07-23 16:29:23 +0000
17
17

Prosta komenda do połączenia z serwerem FTPS w linii poleceń Linuksa

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

Oto metoda, którą znalazłem w Google, aby połączyć się z moim FTPS z lftp. Mam jednak 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 dostałem powyżej wygląda na nieudany - nie próbowałem go jeszcze, ponieważ nie podoba mi się, wiem, że Mam serwer FTP i FTPS, z którym mogę się łatwo połączyć za pomocą FileZilli. Szukam metody linuxowego CLI. Myślałem, żelftp` to robi, ale wydaje się to dziwne. Czy istnieje inny sposób?

Oto metoda, którą znalazłem w Google, aby połączyć się z moim FTPS z lftp. Mam jednak 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 dostałem powyżej wygląda na nieudany - nie próbowałem go jeszcze, ponieważ nie podoba mi się, wiem, że musi być na końcu linii.

Szukam o wiele prostszego one linera. Oto jak łączę się z dowolnego klienta FileZilla i to działa:

ftps://username:password@ftp.server.com/

Działa również to:

ftps://username:password@ftp.server.com/

Odpowiedzi (5)

10
10
10
2016-04-14 06:26:07 +0000

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

lftp -u YOUR_USER HOST_ADDRESS

Na przykład, aby połączyć się z hostem 192.168.1.50 z użytkownikiem test, wystarczy wpisać następujące dane:

lftp -u test 192.168.1.50
9
9
9
2013-07-23 20:43:30 +0000

Jeśli przez dziwactwo rozumiesz długą linię poleceń z obydwoma rodzajami cudzysłowów, po prostu unikaj tego. Użyj skryptu i zapisz zakładkę. Prawdopodobnie nie ma lepszych klientów ftp niż lftp.

  1. zapisz swój skrypt lftp w pliku
  2. uruchom lftp bez żadnych argumentów
  3. uruchom skrypt
  4. zapisz zakładkę.
  5. usuń skrypt (aby pozbyć się hasła clear-text)

Użyj zakładki w przyszłości. Będziesz musiał dowiedzieć się, czy opcje ssl są zapisywane dla zakładki, czy też musisz zachować te ustawienia poprzez globalny plik konfiguracyjny 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

Przykładowe wyjście.

$ lftp
lftp :~> source lftp.ssl.commands
lftp HOSTNAME:~> dir
`ls' at 0 [Connecting...]
6
6
6
2016-01-29 15:13:50 +0000

Możesz też zrobić to w skrypcie basha:

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

To nie powinno stworzyć żadnych trwałych zmian lftp w /etc/lftp.conf, ani ~/.lftprc, ani ~/.lftp/rc

3
3
3
2016-05-05 12:06:54 +0000

nie powiedzie się na niektórych serwerach, ponieważ ustawienia ssl powinny być przekazywane przed komendą open, a nie w jej obrębie. przykład działającego:

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'
2
2
2
2018-03-25 01:39:10 +0000

Próbuję połączyć się z serwerem proftpd z powyższą konfiguracją, ale nie może się zalogować, więc kiedy próbuję tego, jest ok.
1. Utwórz plik konfiguracyjny skryptu

vi .lftprc

z poniższą zawartością:

set ftp:ssl-auth TLS 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. Następnie połącz się z serwerem:

lftp username@hostname

i już wszystko jest dla mnie OK!