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

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

Antworten (5)

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

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

Sie hätten aber auch ganz einfach ftp --help verwenden können.

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

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.

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

Verwenden Sie netrc . Es ist besser, als das Passwort auf der Kommandozeile zu verraten.

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

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.