ホームページ >バックエンド開発 >Golang >SSH エージェント、間違ったパケット長

SSH エージェント、間違ったパケット長

WBOY
WBOY転載
2024-02-09 14:00:36911ブラウズ

SSH 代理,数据包长度错误

#php エディター Shinichi が、今日はよくあるネットワーク エラー「SSH エージェント、パケット長エラー」を紹介します。 SSH エージェント ツールを使用しているときに、このエラー メッセージが表示され、ネットワーク接続が失敗することがあります。このエラーは通常、パケット長が正しく設定されていないことが原因で発生します。この記事では、このエラーの原因を詳しく説明し、問題を解決してネットワーク接続がスムーズになるようにするための解決策をいくつか紹介します。

質問内容

Go で ssh プロキシを実装すると、パケット長が正しくないためエラーが発生します。これらはデバッグ モードでの ssh エラーです:

リーリー

コード:

リーリー

編集: 接続を開始してエラーを再現する方法に関する関連情報を含むコードを追加しました。

私の推測では、ssh ネゴシエーション プロセスが中断され、同期が失われてしまったのではないかと考えられます。

回避策

コードはクライアントから最初の行を読み取り、適切なハンドラーを呼び出せるようにプロトコル タイプをチェックします。 リーリー

しかし、コードは読み取りバイトを接続されたサーバーに転送できません。これらのバイトは

protocol にあり、handlessh に提供されます。ただし、接続が確立されると、これらのバイトを接続されたサーバーに送信できなくなります。代わりに、クライアントとサーバーの間で新しいデータのみをコピーします。

これは、サーバーがクライアントから最初の行を取得できなかったことを意味します。したがって、クライアントに転送され、ssh 接続からの有効なデータとして誤って解釈される

invalid ssh id string. のようなプロトコル エラーが発生する可能性があります。

以上がSSH エージェント、間違ったパケット長の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。