在 Linux 命令行上连接 FTPS 服务器的简单命令

在 Linux 命令行上连接 FTPS 服务器的简单命令

我有一个 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 客户端了。

  1. 将你的 lftp 脚本保存在文件中
  2. 运行 lftp 而不带任何参数
  3. 脚本来源
  4. 保存书签。
  5. 删除脚本(删除明文密码)

将来使用书签。您必须弄清楚书签是否保存了 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 服务器,但是不起作用。

但是,当我尝试使用以下配置进行连接时,它可以工作:

  1. 使用以下命令创建配置文件vi

    vi .lftprc
    
  2. 将以下内容放入.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
    
  3. 使用以下方式连接到服务器:

    lftp username@hostname
    

就是这样!

相关内容