Pure-Rust asynchronous SSH library, both client and server

#77 ssh client connect failed: Channel send error

Opened by kolapapa on July 26, 2022
kolapapa on July 26, 2022
thrussh::client::kex] client parse 323 [20, 2, 237, 165, 91, 243, 181, 209, 189, 86, 96, 219, 35, 148, 147, 78, 135, 0, 0, 0, 80, 100, 105, 102, 102, 105, 101, 45, 104, 101, 108, 108, 109, 97, 110, 45, 103, 114, 111, 117, 112, 49, 45, 115, 104, 97, 49, 44, 100, 105, 102, 102, 105, 101, 45, 104, 101, 108, 108, 109, 97, 110, 45, 103, 114, 111, 117, 112, 49, 52, 45, 115, 104, 97, 49, 44, 107, 101, 120, 103, 117, 101, 115, 115, 50, 64, 109, 97, 116, 116, 46, 117, 99, 99, 46, 97, 115, 110, 46, 97, 117, 0, 0, 0, 15, 115, 115, 104, 45, 114, 115, 97, 44, 115, 115, 104, 45, 100, 115, 115, 0, 0, 0, 61, 97, 101, 115, 49, 50, 56, 45, 99, 116, 114, 44, 51, 100, 101, 115, 45, 99, 116, 114, 44, 97, 101, 115, 50, 53, 54, 45, 99, 116, 114, 44, 97, 101, 115, 49, 50, 56, 45, 99, 98, 99, 44, 51, 100, 101, 115, 45, 99, 98, 99, 44, 97, 101, 115, 50, 53, 54, 45, 99, 98, 99, 0, 0, 0, 61, 97, 101, 115, 49, 50, 56, 45, 99, 116, 114, 44, 51, 100, 101, 115, 45, 99, 116, 114, 44, 97, 101, 115, 50, 53, 54, 45, 99, 116, 114, 44, 97, 101, 115, 49, 50, 56, 45, 99, 98, 99, 44, 51, 100, 101, 115, 45, 99, 98, 99, 44, 97, 101, 115, 50, 53, 54, 45, 99, 98, 99, 0, 0, 0, 18, 104, 109, 97, 99, 45, 115, 104, 97, 49, 44, 104, 109, 97, 99, 45, 109, 100, 53, 0, 0, 0, 18, 104, 109, 97, 99, 45, 115, 104, 97, 49, 44, 104, 109, 97, 99, 45, 109, 100, 53, 0, 0, 0, 4, 110, 111, 110, 101, 0, 0, 0, 4, 110, 111, 110, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[2022-07-26T12:58:19Z DEBUG thrussh::client::kex] extending []
[2022-07-26T12:58:19Z DEBUG thrussh::negotiation] Could not find common kex algorithm, other side only supports Ok("diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,kexguess2@matt.ucc.asn.au"), we only support [Name("curve25519-sha256@libssh.org")]
[2022-07-26T12:58:19Z DEBUG thrussh::client] drop session
[2022-07-26T12:58:19Z TRACE mio::poll] deregistering event source from poller
[2022-07-26T12:58:19Z DEBUG thrussh::client] drop handle
[2022-07-26T12:58:19Z TRACE mio::poll] deregistering event source from poller
Error: connect server failed: Channel send error

Could not find common kex algorithm, other side only supports Ok("diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,kexguess2@matt.ucc.asn.au"), we only support [Name("curve25519-sha256@libssh.org")]

How does this need to be resolved?

kolapapa on July 27, 2022

I can configure like this to connect successfully:

ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 root@192.168.62.1

But I don’t know how to implement this functionality using thrussh.

kolapapa on July 27, 2022
pub struct Preferred {
    /// Preferred key exchange algorithms.
    pub kex: &'static [kex::Name],
    /// Preferred public key algorithms.
    pub key: &'static [key::Name],
    /// Preferred symmetric ciphers.
    pub cipher: &'static [cipher::Name],
    /// Preferred MAC algorithms.
    pub mac: &'static [&'static str],
    /// Preferred compression algorithms.
    pub compression: &'static [&'static str],
}

Is it possible to make kex::Name pub and let users customize kex.