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

17

Tengo un servidor FTP y FTPS donde me puedo conectar fácilmente con FileZilla. Estoy buscando un método de Linux CLI. Pensé lftpque lo hacía, pero parece extraño. ¿Hay otra manera?

Aquí está el método que encontré en Google para conectarme a mi FTPS 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 '

Parece que el código que obtuve arriba fallará; aún no lo he probado, ya que no me gusta, sé que es \necesario que esté al final de la línea.

Estoy buscando un revestimiento mucho más simple. Así es como me conecto desde cualquier cliente FileZilla y funciona:

ftps://username:[email protected]/

Además, esto funciona:

ftps://username:[email protected]/
usuario240137
fuente
Probablemente debería separar esto en dos preguntas diferentes, ya que realmente lo son.
Taegost

Respuestas:

10

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

lftp -u YOUR_USER HOST_ADDRESS

Por ejemplo, para conectarse al host 192.168.1.50con el usuario test, solo escriba lo siguiente:

lftp -u test 192.168.1.50
McSonk
fuente
1
Funcionó muy bien para mí. Votaron esto y votaron a favor todo por delante.
ArtOfWarfare
9

Si por extraño te refieres a una larga línea de comando con ambos tipos de comillas, solo evítala. Use un guión y guarde un marcador. Probablemente no haya mejores clientes ftp que lftp.

  1. guarda tu script lftp en un archivo
  2. ejecuta lftp sin ningún argumento
  3. fuente del guión
  4. guardar un marcador
  5. eliminar el script (para eliminar la contraseña de texto sin cifrar)

Usa el marcador en el futuro. Tendrá que averiguar si las opciones de SSL se guardan para el marcador o si tiene que conservar esas configuraciones a través de un archivo de configuración global de LFTP.


Script de muestra

$ 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

Salida de muestra.

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

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 permanente de lftp en /etc/lftp.conf, o ~ / .lftprc, o ~ / .lftp / rc

RyanS
fuente
3

fallará en algunos servidores, porque la configuración de SSL debe pasarse antes que el comando de apertura no dentro de él. ejemplo de trabajar uno:

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
fuente
2

Intento conectarme al servidor proftpd con la configuración anterior, pero no puede iniciar sesión, así que cuando intento esto, está bien.
1. Crear 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: verificar-certificado no

  1. Después de eso, conéctese al servidor:

    lftp username @ hostname

y eso está todo bien para mí ahora!

quan.nd
fuente