首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ssh代理中使用lftp

在ssh代理中使用lftp
EN

Unix & Linux用户
提问于 2015-01-29 11:20:15
回答 4查看 27K关注 0票数 7

我有一个脚本可以登录到sftp服务器。

代码语言:javascript
复制
eval `ssh-agent -s`
ssh-add /home/<username>/.ssh/id_rsa
sftp <username>@<target>

这是可行的,但我希望只获得比特定日期更新的文件。这在sftp看来是不可能的,所以我想使用lftp

如果我尝试使用lftp运行相同的脚本

代码语言:javascript
复制
eval `ssh-agent -s`
ssh-add /home/<username>/.ssh/id_rsa
lftp <username>@<target>

我得到密码提示。是否可以在ssh-agent中使用lftp,或者是否有其他方法可以避免提供密码?

EN

回答 4

Unix & Linux用户

回答已采纳

发布于 2015-01-29 12:23:48

sftplftp听起来很相似,但在“连接和身份验证层”上几乎没有共同点。sftp使用SSH进行连接和身份验证,并在完成之后使用SSH的内部SFTP服务器。在默认模式下,lftp连接到FTP服务器,与SSH没有关系(因此也与ssh-agent无关)。它也可以连接到SFTP服务器,但在这种情况下不相关。

票数 1
EN

Unix & Linux用户

发布于 2015-05-22 13:43:19

它实际上只是LFTP的一个疣,它甚至要求密码。如果您提供了一个虚拟密码,例如文字字符串DUMMY (例如lftp sftp://<username>:DUMMY@<target>),lftp将不会提示输入密码,然后将与ssh代理进行检查。请注意,如果您没有设置密钥,该密码将被使用。

或者,您可以重写lftp的sftp:connect-program设置以强制ssh用于特定的密钥文件,而不必设置代理(仍然需要虚拟密码)。(一种方法)可以这样做:lftp sftp://<username>:DUMMY@<target> -e 'set sftp:connect-program "ssh -a -x -i <yourprivatekeyfile>"'

sftp:connect-program是lftp用于创建sftp会话的选项。它默认为ssh -a -x,但几乎可以是任何命令(确切的限制请参见lftp手册页)。在这里,我只是附加了-i选项来强制使用一个特定的私钥。

(注意:上述示例中的所有<xxx>位都应替换为实际值。

为了纠正被接受的答案中的一些事情..。

  • ssh中没有内部FTP服务器;sftp是它自己的协议,作为ssh的扩展。它最后只有"ftp“,因为它是一种文件传输协议,它们在细节方面很少有共同之处。
  • 此外,虽然LFTP可以直接连接到FTP,但它也可以连接到其他协议的铃声。当与sftp连接时,它直接调用ssh来处理建立连接的问题,因此所有正常的ssh身份验证方法都适用。LFTP用于调用ssh的命令可以通过它的sftp:connect-program选项(因此上面列出的第二个选项)重新配置。
票数 24
EN

Unix & Linux用户

发布于 2018-07-11 16:54:14

最简单的方法是:lftp -u username, sftp://hostname

用户名后的,字符起了作用。

票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/181781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档