From 160301d8dc9e1d34d3ca2ba238914d708f80be71 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Sat, 18 Jun 2022 21:31:09 +0200 Subject: [PATCH] bumped russh: RSA-SHA1 support - fixes #139 --- Cargo.lock | 8 ++++---- warpgate-admin/Cargo.toml | 2 +- warpgate-protocol-ssh/Cargo.toml | 4 ++-- warpgate-protocol-ssh/src/client/mod.rs | 8 ++++++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d506169..7839abb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2589,9 +2589,9 @@ dependencies = [ [[package]] name = "russh" -version = "0.34.0-beta.4" +version = "0.34.0-beta.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "381859f0ff98e1fe35f1f6c0639579f0c4ac41cc437c975fb79bd51b1b600d06" +checksum = "8cc30588f58cdf955a0834ac1868c7061f59f97b32cc64edaee6ed7610722e29" dependencies = [ "bitflags", "byteorder", @@ -2622,9 +2622,9 @@ dependencies = [ [[package]] name = "russh-keys" -version = "0.22.0-beta.1" +version = "0.22.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab150b6cf2ee69249e89449873d9b1104f871105ef852f6cd4c03587899aec6b" +checksum = "8cead36ac2cc5b61c6774a47568117980d3df4ccf1e3dd504614809832c0781b" dependencies = [ "aes", "bcrypt-pbkdf", diff --git a/warpgate-admin/Cargo.toml b/warpgate-admin/Cargo.toml index 6e7a515..cf1e6a6 100644 --- a/warpgate-admin/Cargo.toml +++ b/warpgate-admin/Cargo.toml @@ -14,7 +14,7 @@ hex = "0.4" mime_guess = {version = "2.0", default_features = false} poem = {version = "^1.3.24", features = ["cookie", "session", "anyhow", "rustls", "websocket", "embed"]} poem-openapi = {version = "^1.3.30", features = ["swagger-ui", "chrono", "uuid", "static-files"]} -russh-keys = {version = "0.22.0-beta.1", features = ["openssl"]} +russh-keys = {version = "0.22.0-beta.2", features = ["openssl"]} rust-embed = "6.3" sea-orm = {version = "^0.8", features = ["sqlx-sqlite", "runtime-tokio-native-tls", "macros"], default-features = false} serde = "1.0" diff --git a/warpgate-protocol-ssh/Cargo.toml b/warpgate-protocol-ssh/Cargo.toml index 8597e38..62e6bbd 100644 --- a/warpgate-protocol-ssh/Cargo.toml +++ b/warpgate-protocol-ssh/Cargo.toml @@ -12,8 +12,8 @@ bimap = "0.6" bytes = "1.1" dialoguer = "0.10" futures = "0.3" -russh = {version = "0.34.0-beta.4", features = ["openssl"]} -russh-keys = {version = "0.22.0-beta.1", features = ["openssl"]} +russh = {version = "0.34.0-beta.5", features = ["openssl"]} +russh-keys = {version = "0.22.0-beta.2", features = ["openssl"]} sea-orm = {version = "^0.8", features = ["runtime-tokio-native-tls"], default-features = false} thiserror = "1.0" time = "0.3" diff --git a/warpgate-protocol-ssh/src/client/mod.rs b/warpgate-protocol-ssh/src/client/mod.rs index e59f80e..721ee39 100644 --- a/warpgate-protocol-ssh/src/client/mod.rs +++ b/warpgate-protocol-ssh/src/client/mod.rs @@ -13,8 +13,8 @@ use channel_session::SessionChannel; use futures::pin_mut; use handler::ClientHandler; use russh::client::Handle; -use russh::Sig; -use russh_keys::key::PublicKey; +use russh::{Sig, Preferred}; +use russh_keys::key::{PublicKey, self}; use std::collections::HashMap; use std::net::ToSocketAddrs; use std::sync::Arc; @@ -327,6 +327,10 @@ impl RemoteClient { info!(?address, username = &ssh_options.username[..], "Connecting"); let config = russh::client::Config { + preferred: Preferred { + key: &[key::ED25519, key::RSA_SHA2_256, key::RSA_SHA2_512, key::SSH_RSA], + ..<_>::default() + }, ..Default::default() }; let config = Arc::new(config);