我该如何编写ssh proxy命令?

时间:2010-10-08 16:41:59

标签: proxy ssh openssh

我正在尝试编写与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.

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

1 个答案:

答案 0 :(得分:0)

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