Как мне написать мою команду ssh proxy? - PullRequest
0 голосов
/ 08 октября 2010

Я пытаюсь написать утилиту, совместимую с -oProxyCommand openssh.Я написал утилиту, которая является прозрачным сокетом для подключения 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.

Тот факт, что он дешифрует блок странным образомпуть заставляет поверить, что моя труба не работает должным образом, но я прошел ее через все виды испытаний, и она не пропустит ни секунды.Чего мне не хватает?

1 Ответ

0 голосов
/ 13 октября 2010

Оказывается, я еще одна жертва магических цитат PHP. Нулевые байты в моем потоке конвертировались в '\ 0' за моей спиной! Очевидно, ни один из моих тестов не содержал нулевого байта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...