Anmeldung mit Linux-FTP-Benutzername und Passwort
Wie lautet der Befehl für die Anmeldung mit FTP alle mit einer Zeile?
ftp username:password@my.domain.com
sagt:
Passwort erforderlich für Benutzername:Passwort
Wie lautet der Befehl für die Anmeldung mit FTP alle mit einer Zeile?
ftp username:password@my.domain.com
sagt:
Passwort erforderlich für Benutzername:Passwort
ftp -nv yourftpserver.com
dann user your_username
oder user anonymous
Ich habe diese Antwort gepostet, da ftp ftp://username:password@my.domain.com
bei mir nicht funktioniert hat.
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
Die beste Option ist, eine .netrc zusammen mit etwas wie gpg für Sicherheitszwecke zu verwenden.
Ich habe ein allgemeines Skript für diesen Zweck geschrieben, das ich vielleicht später hochlade, aber es läuft auf Folgendes hinaus:
gpg -c .netrc
oder optional mit einer Passphrase auf der Kommandozeile und einem Ausgabeziel:
gpg --passphrase <secretphrase> -o .netrc.gpg -c .netrc
Hier nicht gezeigt, aber Sie könnten zusätzlich asymmetrische Schlüssel (wenn Sie sie eingerichtet haben) mit gpg verwenden, um dies noch sicherer zu machen.
Wenn Sie dann bereit sind, sich anzumelden,
gpg .netrc.gpg
# or
gpg --passphrase <secretphrase> -o .netrc .netrc.gpg
ftp yourservername
rm .netrc
Ein Beispiel für eine .netrc:
machine google.com
login <username>
password <secretpassword>
Ich behalte tatsächlich einen lokalen Hash und die Originalkopie dieser Dateien auf einem anderen Computer als dem, auf dem ich die .netrc-Dateien verwende, und überprüfe den Hash der .netrc und das Skript, das ich ausführe, aber das geht über die ursprüngliche Frage des Autors hinaus.
Sie können es mit
my_ftp() {
ftp -i -n <<EOF
open $HOST
user "$USER" "$PASS"
$@
EOF
}
versuchen, die Sie dann mit my_ftp $'ls subfolder\nanothercommand'
aufrufen können Diese Lösung ist nicht interaktiv, aber die beste, die ich herausfinden konnte
edit: Sie sind wahrscheinlich am besten dran, wenn Sie stattdessen einfach curl verwenden.