0

我正在尝试编写一个与 openssh 的 -oProxyCommand 兼容的实用程序。我编写了一个实用程序,它是 ssh 连接(或任何东西)的透明套接字。尽管进行了一些调试,但我相当有信心它确实可以正常工作(手动 IO 测试、大型二进制文件传输都可以正常工作)。

OpenSSH 将无法使用它。我不确定为什么。我是否必须保证交付某些块大小或类似的东西?

这是带有调试输出的示例试运行:

cletus:Desktop jdizzle$ ssh -v -oProxyCommand='python ./tunnel_client.py 127.0.0.1 22 2>/dev/null' 127.0.0.1
OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009
debug1: Reading configuration data /path/jdizzle/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: auto-mux: Trying existing master
debug1: Executing proxy command: exec python ./tunnel_client.py 127.0.0.1 22 2>/dev/null
debug1: identity file /path/jdizzle/.ssh/identity type -1
debug1: identity file /path/jdizzle/.ssh/id_rsa type -1
debug1: identity file /path/jdizzle/.ssh/id_dsa type -1
debug1: permanently_drop_suid: 501
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1
debug1: match: OpenSSH_5.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
Received disconnect from UNKNOWN: 2: Bad packet length 1546673200.

它以一种奇怪的方式解密一个块的事实导致我相信我的管道工作不正常,但我已经通过各种试验运行它并且它不会错过任何一个节拍。我错过了什么?

4

1 回答 1

0

原来我是 PHP 魔术引号的另一个受害者。我的流中的空字节在我背后被转换为 '\0' !显然我的测试都没有包含空字节。

于 2010-10-13T04:37:17.890 回答