Comando simples para conectar-se ao servidor FTPS na linha de comando do Linux

17

Eu tenho um servidor FTP e FTPS onde posso me conectar facilmente com o FileZilla. Estou procurando um método CLI Linux. Eu pensei lftpque sim, mas parece estranho. Existe outro caminho?

Aqui está o método que eu encontrei no Google para conectar-me ao meu FTPS lftp. Mas espero que exista 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 obtive acima parece que irá falhar - ainda não tentei, pois não gosto, sei que é \preciso estar no final da linha.

Estou procurando um forro muito mais simples. Aqui está como eu me conecto a partir de qualquer cliente FileZilla e ele funciona:

ftps://username:[email protected]/

Além disso, isso funciona:

ftps://username:[email protected]/
user240137
fonte
Você provavelmente deve separar isso em duas perguntas diferentes, pois elas realmente são.
Taegost

Respostas:

10

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

lftp -u YOUR_USER HOST_ADDRESS

Por exemplo, para conectar-se ao host 192.168.1.50com o usuário test, digite apenas o seguinte:

lftp -u test 192.168.1.50
McSonk
fonte
1
Funcionou muito bem para mim. Voto positivo e voto negativo em tudo o que está à frente.
ArtOfWarfare
9

Se por estranho você quer dizer uma longa linha de comando com os dois tipos de aspas, evite-a. Use um script e salve um marcador. Provavelmente não há clientes ftp melhores que o lftp.

  1. salve seu script lftp em um arquivo
  2. execute lftp sem argumentos
  3. origine o script
  4. salve um marcador.
  5. excluir o script (para se livrar da senha de texto não criptografado)

Use o marcador no futuro. Você terá que descobrir se as opções ssl estão salvas para o marcador ou se você precisa persistir essas configurações por meio de um arquivo de configuração global do lftp.


Script de amostra.

$ 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...]
Ярослав Рахматуллин
fonte
6

Ou você pode fazer isso em um 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

Isso não deve criar nenhuma alteração permanente do lftp no /etc/lftp.conf ou ~ / .lftprc ou ~ / .lftp / rc

RyanS
fonte
3

ele falhará em alguns servidores, porque as configurações de SSL devem ser passadas antes que o comando open não esteja dentro dele. exemplo de trabalhar um:

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

Eu tento conectar ao servidor proftpd com a configuração acima, mas ele não pode fazer o login, então quando eu tento isso, tudo bem.
1. Crie um arquivo de configuração de script

vi .lftprc

com o conteúdo abaixo:

definir ftp: ssl-auth TLS
definir ftp: ssl-force true
definir ftp: ssl-proteger-list sim
definir ftp: ssl-proteger-dados sim
definir ftp: ssl-proteger-fxp sim
definir ssl: verificar certificado-não

  1. Depois disso, conecte-se ao servidor:

    nome de usuário lftp @ nome do host

e está tudo bem para mim agora!

quan.nd
fonte