答案1
ftp -nv yourftpserver.com
然后user your_username
或user 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