我已经安装了 FileZilla Pro Server 来托管我的 FTP/SFTP 站点。
如果我尝试使用 FileZilla 客户端登录到 SFTP 服务器,它工作正常。
但是我们有另一家公司试图登录,但他们遇到了错误。
2022-11-29 13:25:39.207 FTP< 连接 ftp.domain.com:22
processLoginCommand():连接 InbdProfId 时出现异常:5915 用户名:XXXXXXXXXedi
异常:com.transentric.agilink.ftp.core.exception.TransentricSSHException:com.sshtools.ssh.SshException:无法处理密钥交换 [com.sshtools.ssh.SshException] [com.sshtools.ssh.SshException]
我们一直无法弄清楚原因。
FileZilla 有一些可以设置的公钥/私钥。我不会那样做的。我在想,因为我可以使用常规用户名和密码使用 FileZilla 客户端登录,所以没有必要这样做。
但是 FileZilla Server 中有一个公钥部分。有谁知道什么时候需要设置这个密钥?
SSH 密钥交换建立一次性会话密钥,并通过其主机密钥对服务器进行身份验证。这与用户身份验证不同,在用户身份验证中,用户密钥或密码或 Kerberos 是选项之一。
ssh 协议的全部要点是建立一个加密通道,在该通道中可以通过不安全的网络发送诸如密码之类的弱身份验证。与在将机密发送到 Web 服务器之前确保存在 TLS 加密的 https 会话相比。
随着密码学研究使旧方法变得不安全,密钥交换算法会随着时间的推移而更新。让他们更新他们的 sftp 软件以确保它具有现代算法。
在对此进行故障排除时,在服务器上为其 ssh 端口启动数据包捕获。Wireshark 可以对 ssh 协议进行一些详细的剖析,以查看数据包中发生了什么。
让 ssh 客户端说出 KEX 尝试了什么。例如,更详细的 OpenSSH 客户端将准确说明客户端和服务器的算法。
ssh -vv
并检查围绕 KEXINIT 事件的算法。您没有使用 OpenSSH,因此还请阅读有关协商在您的实现中如何工作的文档。