2013-07-23 16:29:23 +0000 2013-07-23 16:29:23 +0000
17
17

通过Linux命令行连接到FTPS服务器的简单命令。

我有一个FTP和FTPS服务器,我可以很容易地用FileZilla连接到那里。我正在寻找一个linux CLI方法。我想lftp就可以了,但看起来很奇怪。有其他方法吗?

这是我在Google上找到的用lftp连接到FTPS的方法。但我希望有更简单的方法:

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 '

我上面得到的代码看起来会失败–还没试过,因为我不喜欢它,我知道我有一个FTP和FTPS服务器,我可以很容易地用FileZilla连接到那里。我正在寻找一个linux CLI方法。我想lftp`就可以了,但看起来很奇怪。有其他方法吗?

这是我在Google上找到的用lftp连接到FTPS的方法。但我希望有更简单的方法:

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:password@ftp.server.com/

还有,这个也可以。

ftps://username:password@ftp.server.com/

答案 (5)

10
10
10
2016-04-14 06:26:07 +0000

我不知道这在2013年版本的lftp上是否没有,但现在你可以简单地做到:

lftp -u YOUR_USER HOST_ADDRESS

例如,要用用户192.168.1.50连接到主机test,你只需输入以下内容。

lftp -u test 192.168.1.50
9
9
9
2013-07-23 20:43:30 +0000

如果你说的怪异是指一个长长的命令行,其中有两种类型的引号,那就避开它吧。使用脚本和保存书签。可能没有比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...]
``` * * 

示例脚本。
6
6
6
2016-01-29 15:13:50 +0000

或者你可以在 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更改。

3
3
3
2016-05-05 12:06:54 +0000

它在某些服务器上会失败,因为ssl设置应该在打开命令之前而不是在命令中传递,工作的例子。

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'
2
2
2
2018-03-25 01:39:10 +0000

我试着用上面的配置连接到proftpd服务器,但它无法登录,所以当我试着这样做时,它就好了。
1.创建一个脚本配置文件

vi .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

1.然后,连接到服务器。

lftp username@hostname

现在我觉得一切正常了!