Not support ECDSA key files to login a Ubuntu Server
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- rust, ubuntu
調査の方向性
Ubuntu 24.04 上で ECDSA キーを使用し、ssh2 0.9.4 の userauth_pubkey_file エントリーポイントを通じて失敗を再現し、動作する RSA のケースと比較します。src/sshdirsyncer.rs:93 の呼び出しから報告された失敗を追跡し、ECDSA 認証を正常に完了できるかどうかを判断します。issue ではリポジトリのテストについて言及されていません。
索引モデルが issue の本文から書いたものです。
説明
System:
Windows 11 -> Ubuntu 24.04 LTS
ii openssh-server 1:9.6p1-3ubuntu13.4 amd64 secure shell (SSH) server, for secure access from remote machines
version:
ssh2 = "0.9.4"
code
pub fn login(&mut self) {
/* 登录 */
let tcp = TcpStream::connect(format!("{}:{}", self.host, self.port)).expect(format!("TCP创建失败: {}:{}", self.host, self.port).as_str());
self.session.set_tcp_stream(tcp);
self.session.handshake().expect(format!("TCP握手失败: {}:{}", self.host, self.port).as_str());
if self.prikey.chars().count() > 0 {
// 使用证书认证
let prikeyf = Path::new(self.prikey.as_str());
self.session.userauth_pubkey_file(&self.username, None, prikeyf, Some(&self.password)).expect("证书认证失败");
} else {
// 使用密码认证
self.session.userauth_password(&self.username, &self.password).expect("密码认证失败");
}
assert!(self.session.authenticated());
}
If I use an RSA key file, it works well, but when I use an ECDSA key file, it runs into an error like this:
证书认证失败: Error { code: Session(-1), msg: "unknown error" }
stack backtrace:
0: std::panicking::begin_panic_handler
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library\std\src\panicking.rs:645
1: core::panicking::panic_fmt
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library\core\src\panicking.rs:72
2: core::result::unwrap_failed
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library\core\src\result.rs:1654
3: enum2$<core::result::Result<tuple$<>,ssh2::error::Error> >::expect<tuple$<>,ssh2::error::Error>
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6\library\core\src\result.rs:1034
4: sync_ssh_dir::sshdirsyncer::SshdirSyncer::login
at .\src\sshdirsyncer.rs:93
5: sync_ssh_dir::sshdirsyncer::SshdirSyncer::run_sync
at .\src\sshdirsyncer.rs:260
6: sync_ssh_dir::main
at .\src\main.rs:14
7: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6\library\core\src\ops\function.rs:250
8: core::hint::black_box
at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6\library\core\src\hint.rs:337
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `target\debug\sync_ssh_dir.exe` (exit code: 101)
- 主要言語
- Rust
- スター
- 571
- フォーク
- 166
- 平均マージ
- 1日 18時間
- マージ済み PR(30日)
- 5
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
rust-lang/ssh2-rs のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 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
rust-lang/ssh2-rs の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
compiler P4 perf
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
HerringtonDarkholme/hd-lang#1044 ·
メンテナーはふだん 1 日以内に返信
-
good first issue help wanted r-docs
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
servo/rust-smallvec#824 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
akitaonrails/ai-usagebar#552 ·
メンテナーはふだん 1 日以内に返信