web-dev-qa-db-fra.com

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

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

Voici la méthode que j'ai trouvée sur Google pour se connecter à mon FTPS avec lftp. Mais j'espère qu'il y a un moyen plus facile:

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 ci-dessus semble échouer - je ne l'ai pas encore essayé car je ne l'aime pas, je sais que le \ doit être au bout de la ligne.

Je cherche un liner 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]/
13
user240137

Si vous entendez bizarre 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. enregistrer votre script lftp dans un fichier
  2. lancer lftp sans aucun argument
  3. source le script
  4. enregistrer un signet.
  5. supprimer le script (pour supprimer le mot de passe en texte clair)

Utilisez le signet dans le futur. Vous devrez déterminer si les options SSL sont enregistrées pour le signet ou si vous devez les conserver via un fichier de configuration global lftp.


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...]

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.50 avec l'utilisateur test, vous devez uniquement saisir les éléments suivants:

lftp -u test 192.168.1.50
6
McSonk

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 permanentes dans /etc/lftp.conf, ou ~/.lftprc, ou ~/.lftp/rc

5
RyanS

il échouera sur certains serveurs, car les paramètres ssl doivent être passés avant la commande open qui ne figure pas dans celle-ci. 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'
3
Abu-Sadek

J'essaie de me connecter au serveur proftpd avec la configuration ci-dessus, mais il ne parvient pas à se connecter. Lorsque j'essaie, c'est OK.
1. Créer 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 oui
régler ftp: ssl-protect-data oui
régler ftp: ssl-protect-fxp oui
set ssl: verify-certificate no

  1. Ensuite, connectez-vous au serveur:

    lftp nom d'utilisateur @ nom d'hôte

et tout va bien pour moi maintenant!

2
quan.nd