使用 Linux FTP 用户名和密码登录

使用 Linux FTP 用户名和密码登录

用一行就可以登录 FTP 的命令是什么?

ftp username:[email protected]

说:

用户名需要密码:密码

答案1

ftp -nv yourftpserver.com

然后user your_usernameuser anonymous


由于这个答案对我没有用,所以我发布了这个答案。ftp ftp://username:[email protected]

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

最好的选择是使用.netrc以及用于安全目的的 gpg 之类的东西。

我已经为此编写了一个通用脚本,稍后可能会上传,但它可以归结为:

gpg -c .netrc

或者选择在命令行上使用密码和输出目标:

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

这里没有显示,但您还可以使用非对称密钥(如果您已设置)和 gpg 来使其更加安全。

然后当你准备登录时

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

一个示例 .netrc:

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

实际上,我将本地哈希值和这些文件的原始副本保存在与我使用 .netrc 文件的计算机不同的计算机上,并验证 .netrc 和我运行的脚本的哈希值,但这超出了 OP 的原始问题。

答案3

你可以试试

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

然后你可以调用my_ftp $'ls subfolder\nanothercommand'

这个解决方案不是交互式的,但是我能想到的最好的解决方案

编辑:您最好还是使用 curl 。

答案4

卷曲您可以指定用户和密码:

curl --user daniel:secret ftp://example.com/download

或者:

curl ftp://daniel:[email protected]/download

https://everything.curl.dev/ftp

相关内容