Commande simple pour se connecter au serveur FTPS sur la ligne de commande Linux

17

J'ai un serveur FTP et FTPS où je peux me connecter facilement avec FileZilla. Je recherche une méthode CLI Linux. Je pensais que lftpça le faisait, mais ça semble bizarre. Y a-t-il un autre moyen?

Voici la méthode que j'ai trouvée sur Google pour me connecter à mon FTPS lftp. Mais j'espère qu'il existe un moyen plus simple:

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 '

Le code que j'ai obtenu ci-dessus semble échouer - je ne l'ai pas encore essayé car je ne l'aime pas, je sais qu'il \faut être à la fin de la ligne.

Je recherche une doublure beaucoup plus simple. Voici comment je me connecte depuis n'importe quel client FileZilla et cela fonctionne:

ftps://username:[email protected]/

En outre, cela fonctionne:

ftps://username:[email protected]/
user240137
la source
Vous devriez probablement séparer cela en deux questions différentes, car elles le sont vraiment.
Taegost

Réponses:

10

Je ne sais pas si cela n'était pas disponible sur la version 2013 de lftp, mais maintenant vous pouvez simplement faire:

lftp -u YOUR_USER HOST_ADDRESS

Par exemple, pour vous connecter à l'hôte 192.168.1.50avec l'utilisateur test, vous tapez uniquement ce qui suit:

lftp -u test 192.168.1.50
McSonk
la source
1
A très bien fonctionné pour moi. A voté pour cela et a voté contre tout ce qui précède.
ArtOfWarfare
9

Si par bizarre vous voulez dire une longue ligne de commande avec les deux types de guillemets, évitez-la. Utilisez un script et enregistrez un signet. Il n'y a probablement pas de meilleurs clients ftp que lftp.

  1. enregistrez votre script lftp dans un fichier
  2. exécuter lftp sans aucun argument
  3. source le script
  4. enregistrer un signet.
  5. supprimer le script rhe (pour se débarrasser du mot de passe en texte clair)

Utilisez le signet à l'avenir. Vous devrez déterminer si les options SSL sont enregistrées pour le signet ou si vous devez conserver ces paramètres via un fichier de configuration lftp global.


Exemple 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

Exemple de sortie.

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

Ou vous pouvez le faire dans 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

Cela ne devrait pas créer de modifications lftp permanentes dans /etc/lftp.conf, ou ~ / .lftprc ou ~ / .lftp / rc

RyanS
la source
3

il échouera sur certains serveurs, car les paramètres ssl doivent être passés avant que la commande open ne s'y trouve. exemple de travail:

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
la source
2

J'essaie de me connecter au serveur proftpd avec la configuration ci-dessus mais il ne peut pas se connecter donc quand j'essaye, c'est ok.
1. Créez un fichier de configuration de script

vi .lftprc

avec le contenu ci-dessous:

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 oui
set ssl: verify-certificate non

  1. Après cela, connectez-vous au serveur:

    lftp username @ hostname

et c'est tout ok pour moi maintenant!

quan.nd
la source