Skip to content

Refactor/ssh rs to russh - #104

Merged
r3dlight merged 5 commits into
keysas-fr:devfrom
tyrex-vberthier:refactor/ssh-rs-to-russh
May 18, 2026
Merged

r3dlight merged 5 commits into
keysas-fr:devfrom
tyrex-vberthier:refactor/ssh-rs-to-russh

Conversation

@tyrex-vberthier

Copy link
Copy Markdown

Replaces ssh-rs with russh 0.60 in keysas-admin/src-tauri. The old crate has been unmaintained since 2024 (last commit, ~20 stale issues, no roadmap) and was the only blocker keeping the operator desktop on it.

Strict drop-in: same algorithm set, same host-key behaviour, same keysas / Changeme007 defaults, same timeout, same SCP-over-exec upload (no SFTP). Public function names are preserved; call sites in lib.rs and utils.rs just get .await. Error type unifies on anyhow::Result since SshError disappears with the crate.

Tested end-to-end against an OpenSSH 10 sshd: connect_pwd, connect_key, session_exec, and session_upload (with byte-exact sha256sum parity on the uploaded authorized_keys). init_keysas against a real station still needs to be run before merge — I couldn't validate that path locally.

A couple of pre-existing issues surfaced while testing, unrelated to the swap, worth a follow-up:

  • The confirmation dialogs in ManageView.vue and DisplaySigningConfig.vue pass { type: 'info' | 'warning' } to tauri-plugin-dialog's confirm(). Tauri 2 renamed that to kind:, so the dialogs silently no-op and the wrapped action never runs. Been broken since the Tauri v1→v2 upgrade.
  • The onboarding UI tells users to generate keys with ssh-keygen -m PEM -t ed25519 -f mykey. OpenSSH 10 rejects that combination outright (invalid format). Still works on the stable-distro releases operators are actually on, but won't work on anything bleeding-edge.

@r3dlight r3dlight self-assigned this May 13, 2026
@r3dlight r3dlight added the enhancement New feature or request label May 13, 2026
@r3dlight
r3dlight merged commit a5e1e8b into keysas-fr:dev May 18, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants