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

Eenvoudige opdracht om verbinding te maken met FTPS-server op de Linux-opdrachtregel

Ik heb een FTP en FTPS server waar ik gemakkelijk verbinding mee kan maken met FileZilla. Ik ben op zoek naar een linux CLI methode. Ik dacht dat lftp het doet, maar het lijkt vreemd. Is er een andere manier?

Hier is de methode die ik vond op Google om verbinding te maken met mijn FTPS met lftp. Maar ik hoop dat er een makkelijkere manier is:

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 '

De code die ik hierboven heb lijkt te mislukken - ik heb het nog niet geprobeerd omdat ik het niet leuk vind, ik weet dat de Ik heb een FTP en FTPS server waar ik gemakkelijk verbinding mee kan maken met FileZilla. Ik ben op zoek naar een linux CLI methode. Ik dacht datlftp` het doet, maar het lijkt vreemd. Is er een andere manier?

Hier is de methode die ik vond op Google om verbinding te maken met mijn FTPS met lftp. Maar ik hoop dat er een makkelijkere manier is:

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 '

De code die ik hierboven heb lijkt te mislukken - ik heb het nog niet geprobeerd omdat ik het niet leuk vind, ik weet dat de aan het eind van de regel moeten staan.

Ik ben op zoek naar een veel simpelere one liner. Hier is hoe ik verbinding maak vanaf elke FileZilla client en het werkt:

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

Dit werkt ook:

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

Antwoorden (5)

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

Ik weet niet of dit niet beschikbaar was op de 2013 versie van lftp, maar nu kun je gewoon doen:

lftp -u YOUR_USER HOST_ADDRESS

Om bijvoorbeeld verbinding te maken met host 192.168.1.50 met gebruiker test, hoef je alleen het volgende te typen:

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

Als je met vreemd een lange opdrachtregel bedoelt met beide soorten aanhalingstekens, vermijd die dan gewoon. Gebruik een script en sla een bladwijzer op. Er zijn waarschijnlijk geen betere ftp clients dan lftp.

  1. sla je lftp script op in een bestand
  2. start lftp zonder argumenten
  3. source het script
  4. sla een bookmark op.
  5. verwijder het script (om het clear-text password kwijt te raken)

Gebruik de bladwijzer in de toekomst. Je zult moeten uitzoeken of ssl opties worden opgeslagen voor de bladwijzer of dat je die instellingen moet bewaren via een globaal lftp configuratiebestand.


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

Voorbeeld uitvoer.

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

Of je kunt dit doen in een bash script:

#!/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

Dit zou geen permanente lftp veranderingen moeten maken in /etc/lftp.conf, of ~/.lftprc, of ~/.lftp/rc

3
3
3
2016-05-05 12:06:54 +0000

Het zal mislukken op sommige servers, omdat ssl-instellingen moeten worden doorgegeven vóór het open commando niet erin. voorbeeld van een werkende:

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'
2
2
2
2018-03-25 01:39:10 +0000

Ik probeer te verbinden met proftpd server met bovenstaande configuratie maar het kan niet inloggen dus als ik dit probeer, is het Ok.
1. Maak een script config bestand

vi .lftprc

met onderstaande inhoud:

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. Maak daarna verbinding met de server:

lftp username@hostname

en dat is nu allemaal OK voor mij!