反向 SSH 动态端口分配错误

反向 SSH 动态端口分配错误

当我跑步时:

ssh -i mycert -R 0:localhost:80 [email protected]

并在“myserver.com”上运行以下命令:

curl localhost:dynamicly_assigned_port

我收到“ssh:服务器从端口 XXXX 发送未请求的端口”。但是运行:

ssh -i mycert -R 20000:localhost:80 [email protected]

curl localhost:20000

工作正常。任何想法都是为什么我在使用动态分配的端口时收到此错误,但在使用静态端口时却没有收到此错误。我的猜测是由于 dropbear v0.52 使用旧的 ssh 版本,但正在寻找任何其他想法。谢谢

答案1

此错误意味着服务器发送了客户端不希望的未请求的转发端口。简而言之,dropbear SSH 客户端不知道如何处理远程服务器为其分配的动态分配端口转发。 dropbear 不支持它。

相关代码:

其中 dropbear 客户端解析远程转发请求并将其添加到其跟踪的转发列表中:https://github.com/schemacs/dropbear/blob/3c4d57db86668f3cecd91566f971371fbea8684b/cli-runopts.c#L569

dropbear 客户端迭代其remotefwds请求并尝试查找服务器已设置的端口转发的匹配项:https://github.com/schemacs/dropbear/blob/3c4d57db86668f3cecd91566f971371fbea8684b/cli-tcpfwd.c#L214

相关内容