lftp with key + passphrase?

时间:2012-07-20 09:58:52

标签: linux key sftp passphrase lftp

我正在使用 lftp 将文件发送到sftp服务器,但我不知道如何连接密钥和密码。

所以在sftp中,我可以这样做:

sftp -i .ssh/id_rsa.mykey login@my.host.fr
Enter passphrase for key '.ssh/id_rsa.mykey': my passphrase here

那么,我如何使用这种连接方法使用lftp?

4 个答案:

答案 0 :(得分:17)

您必须指定用户名,并将任何内容作为密码传递,以跳过它询问。

lftp -u user,xxx sftp://...

答案 1 :(得分:14)

以Jean-Luc Boss和wiak为基础的答案,但更明确一点:

要连接到服务器,lftp使用ssh命令,默认情况下为ssh -a -x。它没有明确的选项可以更改要使用的密钥文件,但正如您所说,ssh会这样做,因此我们只需要设置lftp以使用ssh -a -x -i <keyfile>进行连接连接。

您可以通过以下几种方式实现这一目标:

  • 如果您正在使用lftp的交互式命令行,请在连接之前运行以下命令:

    set sftp:connect-program "ssh -a -x -i <keyfile>"
    
  • 如果您使用lftp-c指定一堆命令,只需将该命令添加到命令序列的开头:

    lftp -c 'set sftp:connect-program "ssh -a -x -i <keyfile>"; connect sftp://user@example.com; mirror -eR files; ...'
    
  • 如果您总是想要使用相同的密钥,只需将第一个项目符号中的set ...行添加到您的~/.lftprc文件中(或者列出的其他配置文件选项之一) man lftp)。

答案 2 :(得分:6)

只需添加:

set sftp:connect-program "ssh -a -x -i yourprivatekeyfile"

~/.lftprc,因为大部分设置都可以在那里永久设置。

答案 3 :(得分:1)

LFTP似乎没有通过或不使用SSH指定的“ssl:key-file”指定的身份文件,您必须在sftp:connect-program选项中指定它: “ssh -a -x -i yourprivatekeyfile”

这应该有用。