使用 lftp 指定密钥交换协议

使用 lftp 指定密钥交换协议

我必须从远程服务器下载一些(大量)数据。

远程 IT 人员建议使用。lftp sftp://[email protected]:port

然而,当我输入时ls,我看到的是:

`ls' at 0 [Unable to negotiate with XXX.XXX.XXX.XXX port PPP: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1]

看来他们现在无法改变他们的密钥交换方法(是的,我知道,它很容易受到攻击,我警告过他们)。

所以我用了:

sftp -P port -o KexAlgorithms=+diffie-hellman-group1-sha1 [email protected]

我输入了,但是现在我遇到了符号链接的问题,据我所知,get -a -r *它处理得不好。sftp

我现在有什么选择?

答案1

lftp 和 sftp 都使用 /usr/bin/ssh 作为传输协议 – 它们让 SSH 客户端建立连接(启动 SFTP 响应程序而不是交互式 shell),并且只通过 stdin/stdout 使用 SFTP 协议。许多其他程序,例如垂直起降系统、rsync、Git、Borg等也是同样的操作方式。

您可以使用~/.ssh/config指定适用于所有调用“ssh”的程序的自定义设置:

Host server.domain
    KexAlgorithms +diffie-hellman-group1-sha1

相关内容