2010-10-08 25 views
0

J'essaye d'écrire un utilitaire compatible avec le -oProxyCommand de openssh. J'ai écrit un utilitaire qui est un socket transparent à une connexion SSH (ou quelque chose). Bien qu'il ait fallu un peu de débogage, je suis assez confiant qu'il fonctionne en effet correctement (les tests d'E/S manuels, les gros fichiers binaires transfèrent tout le travail).Comment dois-je écrire ma commande proxy ssh?

OpenSSH ne fonctionnera pas avec. Je ne suis pas sûr pourquoi. Dois-je garantir la livraison de certaines tailles de morceaux ou quelque chose comme ça?

Voici un essai exemple exécuté avec la sortie de débogage:

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. 

Le fait qu'il est décrypter un bloc d'une manière étrange conduit à croire que ma pipe ne fonctionne pas correctement, mais je n'ai plus à travers toutes sortes d'essais et il ne manque pas un battement. Qu'est-ce que je rate?

Répondre

0

Il s'avère que je suis une autre victime des citations magiques PHP. Les octets nuls de mon flux étaient convertis en '\ 0' derrière mon dos! Apparemment, aucun de mes tests ne contenait un octet nul.