![使用 lftp 指定密钥交换协议](https://linux22.com/image/1616333/%E4%BD%BF%E7%94%A8%20lftp%20%E6%8C%87%E5%AE%9A%E5%AF%86%E9%92%A5%E4%BA%A4%E6%8D%A2%E5%8D%8F%E8%AE%AE.png)
我必须从远程服务器下载一些(大量)数据。
远程 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