30 linux ftp passwords command-line login
FTP 一行登录的命令是什么?
ftp username:password@my.domain.com
Run Code Online (Sandbox Code Playgroud)
说:
用户名需要密码:password
use*_*339 14
ftp -nv yourftpserver.com
Run Code Online (Sandbox Code Playgroud)
然后user your_username
或user anonymous
我发布了这个答案,因为ftp ftp://username:password@my.domain.com它对我不起作用。
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
Run Code Online (Sandbox Code Playgroud)
出于安全目的,最好的选择是使用.netrc以及 gpg 之类的东西。
我为此编写了一个通用脚本,我可能会稍后上传,但它可以归结为:
gpg -c .netrc
Run Code Online (Sandbox Code Playgroud)
或者可选地在命令行上使用密码和输出目标:
gpg --passphrase <secretphrase> -o .netrc.gpg -c .netrc
Run Code Online (Sandbox Code Playgroud)
此处未显示,但您还可以将非对称密钥(如果您设置了它们)与 gpg 一起使用,以使其更加安全。
然后当您准备好登录时
gpg .netrc.gpg
# or
gpg --passphrase <secretphrase> -o .netrc .netrc.gpg
ftp yourservername
rm .netrc
Run Code Online (Sandbox Code Playgroud)
.netrc 示例:
machine google.com
login <username>
password <secretpassword>
Run Code Online (Sandbox Code Playgroud)
实际上,我将本地哈希和这些文件的原始副本保存在与我使用 .netrc 文件的计算机不同的计算机上,并验证 .netrc 的哈希和我运行的脚本,但这是上面和超出了OP最初的问题。
你可以试试
my_ftp() {
ftp -i -n <<EOF
open $HOST
user "$USER" "$PASS"
$@
EOF
}
Run Code Online (Sandbox Code Playgroud)
然后你可以用它来调用my_ftp $'ls subfolder\nanothercommand'
该解决方案不是交互式的,但是我能想到的最好的解决方案
编辑:你可能最好只使用curl。