Weird error in different situations: "Unable to exchange encryption keys"
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 静か
- 技術スタック
- rust
- 領域
- networking
調査の方向性
報告された session.handshake() 呼び出しから開始し、cargo run と flatpak build の動作を比較してください。SSH2_MSG_KEXINIT 応答がないことを示すサーバーログを使って、異なるランタイムまたは libssh2 環境を調査してください。再現可能な原因を特定し、ハンドシェイクの失敗を文書化または修正できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Hi,
I have a weird problem with SSH handshake that I didn't have previously. Maybe related to SSH server getting updated at some point, I don't know.
The thing is that if I build a flatpak, it works, but if I do just e.g. cargo run it doesn't.
The error is "[Session(-1)] Unable to exchange encryption keys".
Cargo.lock says that ssh2-crate version is 0.9.5.
Regular OpenSSH client works.
Without flatpak, the SSH server logs show:
Connection from 10.0.20.10 port 43390 on 10.0.50.10 port 22 rdomain ""
debug1: Local version string SSH-2.0-OpenSSH_9.7
debug1: Remote protocol version 2.0, remote software version libssh2_1.11.1_DEV
debug1: compat_banner: no match: libssh2_1.11.1_DEV
debug2: fd 4 setting O_NONBLOCK
debug3: ssh_sandbox_init: preparing seccomp filter sandbox
debug2: Network child is on pid 212790
debug3: preauth child monitor started
debug3: privsep user:group 997:996 [preauth]
debug1: permanently_set_uid: 997/996 [preauth]
debug3: ssh_sandbox_child: setting PR_SET_NO_NEW_PRIVS [preauth]
debug3: ssh_sandbox_child: attaching seccomp filter program [preauth]
debug3: append_hostkey_type: ssh-rsa key not permitted by HostkeyAlgorithms [preauth]
debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ssh-ed25519 [preauth]
debug3: send packet: type 20 [preauth]
debug1: SSH2_MSG_KEXINIT sent [preauth]
*HANGS HERE*
And with flatpak:
Connection from 10.0.20.10 port 51588 on 10.0.50.10 port 22 rdomain ""
debug1: Local version string SSH-2.0-OpenSSH_9.7
debug1: Remote protocol version 2.0, remote software version libssh2_1.11.1_DEV
debug1: compat_banner: no match: libssh2_1.11.1_DEV
debug2: fd 4 setting O_NONBLOCK
debug3: ssh_sandbox_init: preparing seccomp filter sandbox
debug2: Network child is on pid 213553
debug3: preauth child monitor started
debug3: privsep user:group 997:996 [preauth]
debug1: permanently_set_uid: 997/996 [preauth]
debug3: ssh_sandbox_child: setting PR_SET_NO_NEW_PRIVS [preauth]
debug3: ssh_sandbox_child: attaching seccomp filter program [preauth]
debug3: append_hostkey_type: ssh-rsa key not permitted by HostkeyAlgorithms [preauth]
debug1: list_hostkey_types: rsa-sha2-512,rsa-sha2-256,ssh-ed25519 [preauth]
debug3: send packet: type 20 [preauth]
debug1: SSH2_MSG_KEXINIT sent [preauth]
debug3: receive packet: type 20 [preauth]
debug1: SSH2_MSG_KEXINIT received [preauth]
debug2: local server KEXINIT proposal [preauth]
etc...
The point where it hangs is where client-side error is returned from handshake():
session_data.session = ssh2::Session::new().unwrap();
session_data.session.set_tcp_stream(stream);
if let Err(error) = session_data.session.handshake() {
Any idea what could be causing this?
- 主要言語
- Rust
- スター
- 571
- フォーク
- 166
- 平均マージ
- 1日 18時間
- マージ済み PR(30日)
- 5
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
rust-lang/ssh2-rs のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
enhancement help wanted
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
Incorrect timeoutオープンbug
難易度 4/5 3〜5日 初心者へのやさしさ 32/100
rust-lang/ssh2-rs の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
go good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
[Python] Worker.close() spins at 100% CPU when its teardown task is canceled対応中かも @Glutexo が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
taskforcesh/bullmq#5053 ·
メンテナーはふだん 1 日以内に返信
-
Cloud environment origin check accepts an explicit default HTTPS port (:443) (follow-up to #30418)オープンarea: cloud
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
manaflow-ai/cmux#31340 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信