2010-10-08 61 views
0

我正在嘗試編寫與openssh的-oProxyCommand兼容的實用程序。我寫了一個實用程序,它是一個透明的套接字到一個SSH連接(或任何東西)。雖然它採取了一些調試,但我相當確信它確實工作正常(手動IO測試,大型二進制文件傳輸全部工作)。我應該如何編寫我的ssh代理命令?

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. 

,它的解密塊在陌生的路上,這一事實導致相信我管工作不正常,但我已經運行它通過各種試驗,並且不會錯過一個節拍。我錯過了什麼?

回答

0

原來我是PHP魔術引號的另一個受害者。我流中的空字節正在被轉換爲背後的'\ 0'!顯然我的測試都沒有包含空字節。