我有一个 FTP 和 FTPS 服务器,我可以使用 FileZilla 轻松连接到该服务器。我正在寻找一种 Linux CLI 方法。我想lftp
这样做,但看起来很奇怪。还有其他方法吗?
这是我在 Google 上找到的用于连接 FTPS 的方法lftp
。但我希望有更简单的方法:
lftp -c 'open -e "set ftps:initial-prot ""; \
set ftp:ssl-force true; \
set ftp:ssl-protect-data true; \
put test.txt; " \
-u "USERNAME","PASSWORD" \
ftps://HOSTNAME:990 '
我上面得到的代码看起来会失败——我还没有尝试过,因为我不喜欢它,我知道它\
需要在行的最后。
我正在寻找一个更简单的单行代码。以下是我从任何 FileZilla 客户端连接的方法及其工作原理:
ftps://username:[email protected]/
另外,这也有效:
ftps://username:[email protected]/
答案1
我不知道 lftp 2013 版是否不支持此功能,但现在您可以简单地执行以下操作:
lftp -u YOUR_USER HOST_ADDRESS
例如,要192.168.1.50
使用用户连接到主机test
,只需输入以下内容:
lftp -u test 192.168.1.50
答案2
如果您所说的奇怪是指包含两种引号的长命令行,请避免使用。使用脚本并保存书签。可能没有比 lftp 更好的 ftp 客户端了。
- 将你的 lftp 脚本保存在文件中
- 运行 lftp 而不带任何参数
- 脚本来源
- 保存书签。
- 删除脚本(删除明文密码)
将来使用书签。您必须弄清楚书签是否保存了 SSL 选项,或者是否必须通过全局 lftp 配置文件保留这些设置。
示例脚本。
$ cat lftp.ssl.commands
user moo foopass
set ftps:initial-prot "";
set ftp:ssl-force true;
set ftp:ssl-protect-data true;
open ftps://HOSTNAME:990
示例输出。
$ lftp
lftp :~> source lftp.ssl.commands
lftp HOSTNAME:~> dir
`ls' at 0 [Connecting...]
答案3
或者你可以在 Bash 脚本中执行以下操作:
#!/bin/bash
lftp <<SCRIPT
set ftps:initial-prot ""
set ftp:ssl-force true
set ftp:ssl-protect-data true
open ftps://<hostname>:990
user <user> <password>
lcd /tmp
cd <ftp_folder_hierarchy>
put foo.txt
exit
SCRIPT
这不会在 /etc/lftp.conf、~/.lftprc 或 ~/.lftp/rc 中创建任何永久性的 lftp 更改
答案4
我尝试使用上述配置连接到 Proftpd 服务器,但是不起作用。
但是,当我尝试使用以下配置进行连接时,它可以工作:
使用以下命令创建配置文件
vi
:vi .lftprc
将以下内容放入
.lftprc
文件中:set ftp:ssl-auth TLS set ftp:ssl-force true set ftp:ssl-protect-list yes set ftp:ssl-protect-data yes set ftp:ssl-protect-fxp yes set ssl:verify-certificate no
使用以下方式连接到服务器:
lftp username@hostname
就是这样!