web-dev-qa-db-fra.com

Connexion avec nom d'utilisateur et mot de passe FTP Linux

Quelle est la commande pour vous connecter avec FTP avec une seule ligne?

ftp username:[email protected]

dit:

Mot de passe requis pour le nom d'utilisateur: mot de passe

21
Daniel Course
ftp -nv yourftpserver.com

alors user your_username ou user anonymous


J'ai posté cette réponse puisque ftp ftp://username:[email protected] ne fonctionnait pas pour moi.

Usage: { ftp | pftp } [-46pinegvtd] [hostname]
   -4: use IPv4 addresses only
   -6: use IPv6, nothing else
   -p: enable passive mode (default for pftp)
   -i: turn off prompting during mget
   -n: inhibit auto-login
   -e: disable readline support, if present
   -g: disable filename globbing
   -v: verbose mode
   -t: enable packet tracing [nonfunctional]
   -d: enable debugging
8
user391339
ftp ftp://username:[email protected]

Vous auriez pu très facilement utiliser ftp --help cependant.

7
Jack

La meilleure option consiste à utiliser un . Netrc avec quelque chose comme gpg pour des raisons de sécurité.

J'ai écrit un script général pour cela, que je pourrais télécharger plus tard, mais cela se résume à:

gpg -c .netrc

ou éventuellement avec une phrase secrète sur la ligne de commande et une destination de sortie:

gpg --passphrase <secretphrase> -o .netrc.gpg -c .netrc

Non indiqué ici, mais vous pouvez également utiliser des clés asymétriques (si vous les avez configurées) avec gpg pour rendre cela encore plus sécurisé.

Ensuite, lorsque vous êtes prêt à vous connecter

gpg .netrc.gpg
# or
gpg --passphrase <secretphrase> -o .netrc .netrc.gpg
ftp yourservername
rm .netrc

Un exemple .netrc:

machine google.com
login <username>
password <secretpassword>

En fait, je conserve un hachage local et la copie originale de ces fichiers sur un ordinateur différent de celui sur lequel j’utilise les fichiers .netrc et vérifie le hachage de .netrc et du script que j’exécute, mais c’est au-dessus et au-delà de la question initiale du PO.

3
smaudet

Utilisez netrc . C'est mieux que de donner le mot de passe sur la ligne de commande.

0
Nemo

Tu peux essayer

my_ftp() {
  ftp -i -n <<EOF
    open $Host
    user "$USER" "$PASS"
    $@
EOF
}

que vous pouvez ensuite appeler avec my_ftp $'ls subfolder\nanothercommand'

Cette solution n’est pas interactive, mais c’est ce que j’ai trouvé de mieux

0
Blauhirn