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
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
ftp -nv yourftpserver.com
dan user your_username
of 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
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.
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.