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

Comando simple para conectarse al servidor FTPS en la línea de comandos de Linux

Tengo un servidor FTP y FTPS al que me puedo conectar fácilmente con FileZilla. Estoy buscando un método CLI para linux. He pensado que lftp lo hace, pero me parece raro. ¿Hay otra manera?

Este es el método que encontré en Google para conectarme a mi FTPS con lftp. Pero espero que haya una manera más fácil:

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 '

El código que tengo arriba parece que va a fallar - no lo he probado todavía porque no me gusta, sé que el Tengo un servidor FTP y FTPS al que me puedo conectar fácilmente con FileZilla. Estoy buscando un método CLI para linux. He pensado quelftp` lo hace, pero me parece raro. ¿Hay otra manera?

Este es el método que encontré en Google para conectarme a mi FTPS con lftp. Pero espero que haya una manera más fácil:

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 '

El código que tengo arriba parece que va a fallar - no lo he probado todavía porque no me gusta, sé que el tiene que estar al final de la línea.

Estoy buscando una línea mucho más simple. Así es como me conecto desde cualquier cliente de FileZilla y funciona:

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

También funciona esto:

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

Respuestas (5)

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

No sé si esto no estaba disponible en la versión 2013 de lftp, pero ahora simplemente se puede hacer:

lftp -u YOUR_USER HOST_ADDRESS

Por ejemplo, para conectarse al host 192.168.1.50 con el usuario test, sólo hay que escribir lo siguiente:

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

Si por raro te refieres a una larga línea de comandos con ambos tipos de comillas, simplemente evítalo. Usa un script y guarda un marcador. Probablemente no hay mejores clientes ftp que lftp.

  1. guarda tu script lftp en un archivo
  2. ejecuta lftp sin ningún argumento
  3. origina el script
  4. guarda un marcador.
  5. borrar el script (para deshacerse de la contraseña en texto claro)

Usar el marcador en el futuro. Tendrá que averiguar si las opciones ssl se guardan para el marcador o si tiene que persistir esa configuración a través de un archivo de configuración global de lftp.

  • *

Script de ejemplo.

$ 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
  • *

Ejemplo de salida.

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

O puede hacer esto en un 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

Esto no debería crear ningún cambio lftp permanente en /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

Intento conectarme al servidor proftpd con la configuración anterior, pero no puede iniciar sesión, así que cuando intento esto, está bien.
1. Cree un archivo de configuración de script

vi .lftprc

con el siguiente contenido:

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. Después, conéctate al servidor:

lftp username@hostname

¡y ya está todo bien para mí!