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

Comando simples para ligar ao servidor FTPS na linha de comando Linux

Tenho um servidor FTP e FTPS onde me posso ligar facilmente com o FileZilla. Estou à procura de um método CLI linux. Pensei lftp fá-lo, mas parece estranho. Haverá outra forma?

Aqui está o método que encontrei no Google para me ligar ao meu FTPS com lftp. Mas espero que haja uma maneira mais 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 '

O código que consegui acima parece que vai falhar - ainda não o experimentei porque não gosto dele, sei que o Tenho um servidor FTP e FTPS onde me posso ligar facilmente com o FileZilla. Estou à procura de um método CLI linux. Penseilftp` fá-lo, mas parece estranho. Haverá outra forma?

Aqui está o método que encontrei no Google para me ligar ao meu FTPS com lftp. Mas espero que haja uma maneira mais 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 '

O código que consegui acima parece que vai falhar - ainda não o experimentei porque não gosto dele, sei que o precisa de estar no fim da linha.

Estou à procura de um liner muito mais simples. Aqui está como me ligo a partir de qualquer cliente FileZilla e funciona:

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

Além disso, isto funciona:

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

0x1&

Respostas (5)

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

Não sei se isto não estava disponível na versão 2013 do lftp, mas agora pode simplesmente fazer:

lftp -u YOUR_USER HOST_ADDRESS

Por exemplo, para se ligar ao anfitrião 192.168.1.50 com o utilizador test, basta digitar o seguinte:

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

Se por estranho se refere a uma longa linha de comando com ambos os tipos de aspas, basta evitá-la. Use um guião e guarde um marcador de página. Provavelmente não há melhores clientes ftp do que lftp.

  1. guarde o seu script lftp num ficheiro
  2. execute lftp sem quaisquer argumentos
  3. fonte do script
  4. guarde um bookmark.
  5. apagar o script (para se livrar da palavra-passe do texto limpo)

Use o bookmark no futuro. Terá de descobrir se as opções ssl são guardadas para o bookmark ou se terá de persistir nessas definições através de um ficheiro de configuração lftp global.


Exemplo de 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

Saída de amostra.

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

Ou pode fazer isto num guião 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

Isto não deve criar quaisquer alterações lftp permanentes em /etc/lftp.conf, ou ~/.lftprc, ou ~/.lftp/rc

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

Tento ligar-me ao servidor proftpd com a configuração acima, mas ele não consegue fazer login, por isso, quando tento isto, está bem.
1. criar um ficheiro de configuração de script

vi .lftprc

com conteúdo abaixo:

set ftp:ssl-auth TLS & > set ftp:ssl-force true & > set ftp:ssl-protect-list sim & > set ftp:ssl-protect-data sim set ftp:ssl-protect-fxp sim set ssl:verify-certificate no

  1. Depois disso, ligar ao servidor:

lftp nome de utilizador@nome de utilizador

e tudo está bem para mim agora!