2012-03-03 16:26:38 +0000 2012-03-03 16:26:38 +0000
23
23

Connectez-vous avec le nom d'utilisateur et le mot de passe FTP de Linux

Quelle est la commande pour se connecter avec le FTP en une seule ligne ?

ftp username:password@my.domain.com

dit :

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

Réponses (5)

9
9
9
2016-05-28 21:35:36 +0000
ftp -nv yourftpserver.com

puis user your_usernameou user anonymous


J'ai affiché cette réponse car ftp ftp://username:password@my.domain.com ne me convenait pas.

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
6
6
6
2012-03-03 16:38:19 +0000
ftp ftp://username:password@my.domain.com

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

4
4
4
2016-08-05 08:38:29 +0000

La meilleure option est d'utiliser un .netrc avec quelque chose comme un gpg pour des raisons de sécurité.

J'ai écrit un script à usage 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 de passe 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ûr.

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

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

Un exemple de .netrc :

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

Je conserve en fait 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 je vérifie le hachage du .netrc et du script que j'exécute, mais cela va au-delà de la question initiale du PO.

1
1
1
2012-12-11 06:51:02 +0000

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

1
1
1
2019-02-18 16:18:22 +0000

Vous pouvez 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 le mieux que j'ai pu trouver

éditer : il vaut probablement mieux utiliser le curl à la place.

Questions connexes

6
10
7
5
8