Melden Sie sich mit Linux FTP-Benutzernamen und Passwort an


23

Was ist 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


2
Verwenden Sie man ftp, um herauszufinden, oder vielleicht ftp --help. Vergessen Sie nicht, dass ftpdies verschiedene Dienstprogramme bedeuten kann ...
Basile Starynkevitch

2
ftp ftp://username:password@my.domain.com

1
Sie sollten sich auch daran erinnern, dass die Befehlszeile eines bestimmten Prozesses für alle anderen Benutzer im System sichtbar ist. Daher kann die Eingabe Ihres Kennworts als Teil der Befehlszeile ein ernstes Sicherheitsproblem darstellen.

Antworten:


8
ftp -nv yourftpserver.com

dann user your_username oderuser anonymous


Ich habe diese Antwort gepostet, da ftp ftp://username:password@my.domain.comsie 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

2
Dies ist nicht besonders nützlich, da eine interaktive Nutzung erforderlich ist. Ich könnte genauso gut einfach 'ftp user @ yourserver' eingeben.
Smaudet

3
dies beantwortet die
frage

7
ftp ftp://username:password@my.domain.com

Das hättest du aber ganz leicht gebrauchen können ftp --help.


25
Der angezeigte Befehl erzeugt: "Name oder Dienst nicht bekannt". ftp -help erzeugt nichts wie mit ftp :, // oder username: password @.
CW Holeman II

4
Welche Linux-Version verwenden Sie? Ich erhalte auch "Name oder Dienst nicht bekannt", wenn ich die obige Syntax ausprobiere. Ich benutze CentOS 6.
Tim Ludwinski

7
Ich bekomme auch Name oder Service nicht bekannt
Kevin Johnson

6
funktioniert nicht für mich, fyi auf einem Ubuntu Remote-Server
user391339

6
Ich fand auch ftp -help nicht hilfreich und das Format, das Sie vorschlagen, funktioniert nicht für mich auf Ubuntu 16.
Henry

3

Die beste Option ist, aus Sicherheitsgründen eine .netrc-Datei zusammen mit so etwas wie gpg zu verwenden.

Ich habe ein Allzweck-Skript dafür geschrieben, das ich später hochladen kann, das sich jedoch wie folgt zusammensetzt:

gpg -c .netrc

oder optional mit einer Passphrase in der Befehlszeile und einem Ausgabeziel:

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

Hier nicht gezeigt, aber Sie können zusätzlich asymmetrische Schlüssel (falls vorhanden) mit gpg verwenden, um diese noch sicherer zu machen.

Dann, wenn Sie bereit sind, sich anzumelden

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

Ein Beispiel .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 von .netrc und dem Skript, das ich ausführe, aber das steht über und jenseits der ursprünglichen Frage des OP.


Dies ist die beste Antwort, obwohl sie verbessert werden kann: (1) Benutzeranmeldeinformationen innerhalb einer einzelnen Befehlszeile werden im Shell-Verlauf gespeichert => Sicherheitsprobleme. (2) .netrc funktioniert auch ohne gpg => Sicherheitsprobleme. Überprüfen Sie auch, ob die .netrc-Datei über die richtigen Berechtigungen verfügt: chmod 600 .netrc(3) Eine Shell-Funktion als Wrapper für die Entschlüsselung, den FTP-Aufruf und das Entfernen der entschlüsselten .netrc-Datei wäre hilfreich. Vielen Dank für Ihre tolle Antwort!
Mathe

Also muss der Benutzer anstelle des FTP-Passworts die GPG-Passphrase eingeben? Wenn ein Angreifer Schreibzugriff auf Ihre persönlichen Dateien hat, gibt es unzählige Möglichkeiten, Ihre Anmeldeinformationen anzuzeigen, sobald Sie sie verwenden. In diesem Szenario hilft GPG nur gegen einen Angreifer mit Nur-Lese-Zugriff. Was ist wirklich selten, denke ich?
Konrad

1

Verwenden Sie netrc . Es ist besser, als das Kennwort in der Befehlszeile preiszugeben.


Diese Antwort verdient keine negative Bewertung (obwohl es kein Beispiel dafür gibt, wie man das macht).
Peter Mortensen

Ich stimme zu - aber niemand hat dies jemals geändert (und ich habe es nicht abgelehnt).
Smaudet

0

Du kannst es versuchen

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

mit denen kannst du dann telefonieren my_ftp $'ls subfolder\nanothercommand'

Diese Lösung ist nicht interaktiv, aber das Beste, was ich herausfinden konnte

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.