lftp with key + passphrase?

Hak*_*del 11 linux sftp key 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
Run Code Online (Sandbox Code Playgroud)

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

Bea*_*ker 17

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

lftp -u user,xxx sftp://...
Run Code Online (Sandbox Code Playgroud)

  • `lftp -u user,sftp:// hostname`也可以(注意逗号) (12认同)

me_*_*and 16

根据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>"
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果要指定要lftp使用的一堆命令-c,只需将该set命令添加到命令序列的开头:

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


nwg*_*gat 6

只需添加:

set sftp:connect-program "ssh -a -x -i yourprivatekeyfile"
Run Code Online (Sandbox Code Playgroud)

对你来说~/.lftprc,因为大多数设置都可以在那里永久设置.