我正在使用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 呢?
我正在使用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 呢?
基于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
using -c
,只需将该 set 命令添加到命令序列的开头:
lftp -c 'set sftp:connect-program "ssh -a -x -i <keyfile>"; connect sftp://user@example.com; mirror -eR files; ...'
如果您总是想使用相同的密钥,只需将set ...
第一个项目符号中的那一行添加到您的~/.lftprc
文件(或 中列出的其他配置文件选项之一man lftp
)。
You must specify the username, and just pass anything as the password, to skip it asking.
lftp -u user,xxx sftp://...
只需添加:
set sftp:connect-program "ssh -a -x -i yourprivatekeyfile"
到您的~/.lftprc
,因为大多数设置都可以在那里永久设置。
LFTP 似乎没有通过或没有将“ssl:key-file”指定的身份文件与 SSH 一起使用。您必须在 sftp:connect-program 选项中指定它:
ssh -a -x -i yourprivatekeyfile
这应该有效。