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

Log in met Linux FTP gebruikersnaam en wachtwoord

Wat is het commando om in te loggen met FTP met één regel?

ftp username:password@my.domain.com

zegt:

Wachtwoord vereist voor gebruikersnaam:wachtwoord

Antwoorden (5)

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

dan user your_usernameof user anonymous

  • *

Ik heb dit antwoord gepost omdat ftp ftp://username:password@my.domain.com bij mij niet werkte.

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

Je had ook makkelijk ftp --help kunnen gebruiken.

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

De beste optie is om een .netrc te gebruiken, samen met iets als gpg voor veiligheidsdoeleinden.

Ik heb hiervoor een script voor algemene doeleinden geschreven, dat ik misschien later upload, maar het komt neer op:

gpg -c .netrc

of optioneel met een passphrase op de commandline en een uitvoerbestemming:

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

Niet hier getoond, maar je zou ook asymmetrische sleutels kunnen gebruiken (als je die hebt ingesteld) met gpg om dit nog veiliger te maken.

Dan wanneer je klaar bent om in te loggen

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

Een voorbeeld .netrc:

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

Ik bewaar eigenlijk een lokale hash en de originele kopie van deze bestanden op een andere computer dan die waarop ik de .netrc bestanden gebruik, en controleer de hash van de .netrc en het script dat ik draai, maar dat gaat verder dan de oorspronkelijke vraag van de OP.

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

Gebruik netrc . Dat is beter dan het wachtwoord weggeven op de commandoregel.

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

Je kunt

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

proberen die je dan kunt aanroepen met my_ftp $'ls subfolder\nanothercommand'

Deze oplossing is niet interactief maar het beste wat ik kon bedenken

edit: Je bent waarschijnlijk het beste af om gewoon curl te gebruiken.