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
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
ftp ftp://username:[email protected]
Vous auriez pu très facilement utiliser ftp --help
cependant.
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.
Utilisez netrc . C'est mieux que de donner le mot de passe sur la ligne de commande.
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