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

use*_*137 22 ftp command-line ftps

我有一个 FTP 和 FTPS 服务器,我可以在其中使用 FileZilla 轻松连接。我正在寻找一种 linux CLI 方法。我以为lftp可以,但似乎很奇怪。还有其他方法吗?

这是我在 Google 上找到的使用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 '
Run Code Online (Sandbox Code Playgroud)

我上面得到的代码看起来会失败——我还没有尝试过,因为我不喜欢它,我知道\需要在行尾。

我正在寻找一种更简单的单衬。以下是我从任何 FileZilla 客户端连接的方式,它的工作原理是:

ftps://username:password@ftp.server.com/
Run Code Online (Sandbox Code Playgroud)

此外,这有效:

ftps://username:password@ftp.server.com/
Run Code Online (Sandbox Code Playgroud)

小智 15

我不知道这是否在 2013 版的 lftp 上不可用,但现在您可以简单地执行以下操作:

lftp -u YOUR_USER HOST_ADDRESS
Run Code Online (Sandbox Code Playgroud)

例如,要192.168.1.50使用 user连接到主机test,您只需键入以下内容:

lftp -u test 192.168.1.50
Run Code Online (Sandbox Code Playgroud)


Яро*_*лин 9

如果奇怪的是您的意思是带有两种引号的长命令行,请避免使用它。使用脚本并保存书签。可能没有比 lftp 更好的 ftp 客户端了。

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

将来使用书签。您必须弄清楚是否为书签保存了 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
Run Code Online (Sandbox Code Playgroud)

样本输出。

$ lftp
lftp :~> source  lftp.ssl.commands
lftp HOSTNAME:~> dir
`ls' at 0 [Connecting...]
Run Code Online (Sandbox Code Playgroud)


小智 6

或者您可以在 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
Run Code Online (Sandbox Code Playgroud)

这不应在 /etc/lftp.conf 或 ~/.lftprc 或 ~/.lftp/rc 中创建任何永久的 lftp 更改


小智 6

它在某些服务器上会失败,因为 ssl 设置应该在 open 命令之前传递,而不是在其中。工作示例一:

lftp -c 'set ftp:ssl-allow true ; set ssl:verify-certificate no; open -u USERNAME,PASSWORD -e "cd /; mput LOCAL/PATH/TO/FILE/FILENAME.EXT; quit" HOST'
Run Code Online (Sandbox Code Playgroud)


小智 5

我尝试使用上述配置连接到 Proftpd 服务器,但它不起作用。

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

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

    vi .lftprc
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用以下命令连接到服务器:

    lftp username@hostname
    
    Run Code Online (Sandbox Code Playgroud)

就是这样!


lov*_*sus 5

简单的

在这里你有:ftp-ssl

默认情况下尝试通过 SSL 或 TLS 连接。它不需要特定的选项或设置。如果安全连接不可用,则执行标准 FTP 连接。

ftp-ssl <Server IP address or Server Name>
Run Code Online (Sandbox Code Playgroud)

例如,ftp-ssl 192.168.35.100或者ftp-ssl lovedByJesus

文档摘录:

ftp-ssl 使用 SSL 或 TLS 身份验证和加密替换普通 ftp。它与普通 ftpd 互操作。它检查对方是否也在使用 SSL 或 TLS,如果不是,则返回到正常的 ftp 协议。