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

Semplice comando per connettersi al server FTPS sulla linea di comando di Linux

Ho un server FTP e FTPS a cui posso connettermi facilmente con FileZilla. Sto cercando un metodo CLI per linux. Ho pensato che lftp lo fa, ma sembra strano. C'è un altro modo?

Ecco il metodo che ho trovato su Google per connettermi al mio FTPS con lftp. Ma spero che ci sia un modo più semplice:

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 '

Il codice che ho trovato sopra sembra fallire - non l'ho ancora provato perché non mi piace, so che gli Ho un server FTP e FTPS a cui posso connettermi facilmente con FileZilla. Sto cercando un metodo CLI per linux. Ho pensato chelftp` lo fa, ma sembra strano. C'è un altro modo?

Ecco il metodo che ho trovato su Google per connettermi al mio FTPS con lftp. Ma spero che ci sia un modo più semplice:

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 '

Il codice che ho trovato sopra sembra fallire - non l'ho ancora provato perché non mi piace, so che gli devono essere alla fine della linea.

Sto cercando un codice molto più semplice. Ecco come mi collego da qualsiasi client FileZilla e funziona:

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

Anche questo funziona:

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

Risposte (5)

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

Non so se questo non era disponibile nella versione 2013 di lftp, ma ora si può semplicemente fare:

lftp -u YOUR_USER HOST_ADDRESS

Per esempio, per connettersi all'host 192.168.1.50 con l'utente test, basta digitare quanto segue:

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

Se per strano intendete una lunga linea di comando con entrambi i tipi di virgolette, evitatelo. Usa uno script e salva un segnalibro. Probabilmente non ci sono client ftp migliori di lftp.

  1. salva il tuo script lftp in un file
  2. esegui lftp senza argomenti
  3. crea lo script
  4. salva un segnalibro.
  5. cancella rhe script (per sbarazzarti della password in chiaro)

Usa il segnalibro in futuro. Dovrete capire se le opzioni ssl sono salvate per il segnalibro o se dovete persistere queste impostazioni tramite un file di configurazione globale di lftp.


Esempio di script.

$ 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

Esempio di output.

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

Oppure potete farlo in uno script 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

Questo non dovrebbe creare alcun cambiamento permanente di lftp in /etc/lftp.conf, o ~/.lftprc, o ~/.lftp/rc

3
3
3
2016-05-05 12:06:54 +0000
2
2
2
2018-03-25 01:39:10 +0000

Ho provato a connettermi al server proftpd con la configurazione di cui sopra, ma non può accedere, quindi quando provo questo, è Ok.
1. Creare un file di configurazione dello script

vi .lftprc

con il seguente contenuto:

imposta ftp:ssl-auth TLS imposta ftp:ssl-force true imposta ftp:ssl-protect-list sì imposta ftp:ssl-protect-data sì imposta ftp:ssl-protect-fxp sì imposta ssl:verify-certificate no

  1. Dopo di che, connettiti al server:

lftp username@hostname

e ora è tutto OK per me!