当我跑步时:
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