Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 带键的lftp+;密码短语_Linux_Key_Sftp_Passphrase_Lftp - Fatal编程技术网

Linux 带键的lftp+;密码短语

Linux 带键的lftp+;密码短语,linux,key,sftp,passphrase,lftp,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与此连接方法结合使用呢?您必须指定用户名,并将任何内容作为密码传递,才能跳过它 lftp -u user,xxx sftp://... 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与此连接方法结合使用呢?

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

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

LFTP似乎无法通过SSH,或者没有使用“ssl:key file”指定的标识文件。您必须在sftp:connect程序选项中指定它:

ssh -a -x -i yourprivatekeyfile
这应该行得通。

只需添加:

set sftp:connect-program "ssh -a -x -i yourprivatekeyfile"
您的
~/.lftprc
,因为大多数设置都可以在那里永久设置。

一个基于和wiak的答案,但更明确一点:

要连接到服务器,
lftp
默认使用
ssh
命令
ssh-a-x
。它没有一个明确的选项来更改要使用的密钥文件,但是正如您所注意的,
ssh
有,所以我们只需要在连接之前设置
lftp
以使用
ssh-a-x-i
进行连接

您可以通过以下几种方式完成此操作:

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

      set sftp:connect-program "ssh -a -x -i <keyfile>"
    
  • 如果您总是想使用相同的键,只需将第一个项目符号中的
    set…
    行添加到
    ~/.lftprc
    文件(或
    man lftp
    中列出的其他配置文件选项之一)


lftp是一个客户端,支持多种协议(ftp、ftps、sftp等),那么您要使用哪种协议?例如,ftp不支持公钥身份验证,因此您只能使用usename+password。我使用的是sftp,因此我可以在密钥中使用密码短语。我尝试了以下方法:lftp-e“set ssl:key file.ssh/id\u rsa.mykey”sftp://my.host.fr 但是它不起作用……为什么不使用
scp
sftp
命令,它们可以更好地支持基于ssh的协议。。。lftp的作用似乎是使用
ssh add
将私钥添加到正在运行的
ssh代理中,然后lftp使用该代理。因为这非常紧急,我已经使用了sftp,但如果我们找到解决方案,我的客户希望lftp用于未来。现在,它正在工作,谢谢你,玛塔<代码>lftp-u用户,sftp://hostname
也有效(请注意逗号),由于某些原因,如果您需要发送私钥和密码,则此项不起作用。密码没有发送,或者发送不正确。@user151841很好,我现在就来解决。谁是“wiak”?…@PeterMortensen不知道;我想是其他的回答者之一(也许)改变了他们的说法,但我大约在七年前写了这篇文章,所以我恐怕我的记忆没有那么详细!
  lftp -c 'set sftp:connect-program "ssh -a -x -i <keyfile>"; connect sftp://user@example.com; mirror -eR files; ...'