Skip to content

Releases: Eugeny/russh

v0.52.1

11 May 14:29
Compare
Choose a tag to compare

Fixes

v0.52.0

24 Apr 17:12
Compare
Choose a tag to compare

Features

Fixes

  • 20ea6a0: Handle unexpected EOF as expected in session closure (#495) (lgmugnier) #495
  • 6a6fa80: make ChannelCloseOnDrop async
  • c2fa2df: fixed #506 - removed faulty server-sig-algs timeout on wasm (#508) #508

v0.52.0-beta.1

23 Apr 19:13
Compare
Choose a tag to compare
v0.52.0-beta.1 Pre-release
Pre-release

Features

Fixes

  • 20ea6a0: Handle unexpected EOF as expected in session closure (#495) (lgmugnier) #495
  • 6a6fa80: make ChannelCloseOnDrop async
  • c2fa2df: fixed #506 - removed faulty server-sig-algs timeout on wasm (#508) #508

v0.51.1

11 Mar 23:45
Compare
Choose a tag to compare

Changes

  • 71cd4ab: fixed #468 - allow RSA keys below 2048-bit length

russh has previously disallowed <2048-bit RSA keys - whether as private or as server host keys, both as server and client due to a security check in the ssh-key crate.

This behaviour has now been changed to allow these keys, and the decision to accept or reject them now lies on the library consumer. To recreate the old behaviour within your Handler, add the following check to your check_server_key implementation. You'll need to import the rsa crate.

async fn check_server_key(
    &mut self,
    server_public_key: &PublicKey,
) -> Result<bool, Self::Error> {
    use rsa::traits::PublicKeyParts;

    if let Some(ssh_pk) = server_public_key.key_data().rsa() {
        let rsa_pk: rsa::RsaPublicKey = ssh_pk.try_into()?;
        if rsa_pk.size() < 2048 {
            return Ok(false);
        }
    }
    
    ...
}
  • 0c722b8: partial_success support (#478) #478
  • 32a9ee1: Add a crate feature to enable DSA support (#473) (Francesco Degrassi) #473
  • db5e5ba: wait for extension info from the server in the best_supported_rsa_hash method. Previously there was a race condition between calling best_supported_rsa_hash and the server sending the EXT_INFO message. Now russh will wait for up to one second to receive EXT_INFO when you call best_supported_rsa_hash.
  • 92362fc: Introduce Channel::split() to allow splitting a channel into a read half and a write half (#482) (Uli Schlachter) #482
  • 32667df: Added support for additional DH groups (#486) (Jacob Van Brunt) #486
  • replaced libc dependency with nix (#483) #483 (iHsin)

Fixes

  • 0665aac: Cryptovec/Windows: Add reference counting per Page, improve error-msg (#471) (Adrian Müller (DTT)) #471
  • 0b4cf36: Optimize examples/client_open_direct_tcpip.rs (#477) (handewo) #477
  • ffc5726: Remove unused dependencies (#488) (Uli Schlachter) #488

v0.51.0-beta.3

09 Mar 18:20
Compare
Choose a tag to compare
v0.51.0-beta.3 Pre-release
Pre-release

Changes

  • db5e5ba: wait for extension info from the server in the best_supported_rsa_hash method. Previously there was a race condition between calling best_supported_rsa_hash and the server sending the EXT_INFO message. Now russh will wait for up to one second to receive EXT_INFO when you call best_supported_rsa_hash.

  • 92362fc: Introduce Channel::split() to allow splitting a channel into a read half and a write half (#482) (Uli Schlachter) #482

  • 32667df: Added support for additional DH groups (#486) (Jacob Van Brunt) #486

  • replaced libc dependency with nix (#483) #483 (iHsin)

v0.51.0-beta.2

09 Mar 18:18
Compare
Choose a tag to compare
v0.51.0-beta.2 Pre-release
Pre-release

Changes

Fixes

  • 0665aac: Cryptovec/Windows: Add reference counting per Page, improve error-msg (#471) (Adrian Müller (DTT)) #471
  • 0b4cf36: Optimize examples/client_open_direct_tcpip.rs (#477) (handewo) #477

v0.51.0-beta.1

24 Feb 22:41
Compare
Choose a tag to compare
v0.51.0-beta.1 Pre-release
Pre-release

Changes

  • 71cd4ab: fixed #468 - allow RSA keys below 2048-bit length

russh has previously disallowed <2048-bit RSA keys - whether as private or as server host keys, both as server and client due to a security check in the ssh-key crate.

This behaviour has now been changed to allow these keys, and the decision to accept or reject them now lies on the library consumer. To recreate the old behaviour within your Handler, add the following check to your check_server_key implementation. You'll need to import the rsa crate.

async fn check_server_key(
    &mut self,
    server_public_key: &PublicKey,
) -> Result<bool, Self::Error> {
    use rsa::traits::PublicKeyParts;

    if let Some(ssh_pk) = server_public_key.key_data().rsa() {
        let rsa_pk: rsa::RsaPublicKey = ssh_pk.try_into()?;
        if rsa_pk.size() < 2048 {
            return Ok(false);
        }
    }
    
    ...
}

v0.50.4

24 Feb 22:38
Compare
Choose a tag to compare

Fixes

  • 83aacd1: re-fixed #470 - correctly ignore hash_alg argument when signing with non-RSA keys via agent
  • bf235bc: fixed #470 - incorrect hash passed for an RSA key offer in agent authentication

v0.50.3

20 Feb 20:06
Compare
Choose a tag to compare

Changes

  • b5e244b: populate comments for agent identities (#466) (Chris) #466
  • 07d6243: Add a function to send ExitStatus message to Channel (#465) (procr1337) #465

Fixes

  • 16a18bc: fixed #470 - broken agent auth with rsa-sha2-* algos

v0.50.2

09 Feb 17:46
Compare
Choose a tag to compare

russh-cryptovec@0.50.2

Changes

Reverted a change from 0.50.0 that made cryptovec panic when the OS fails to mlock() the memory.

Instead, russh-cryptovec will log a one-time log warning about this.

A common cause for these errors is running on Linux under a low RLIMIT_MEMLOCK limit

Docs

  • 6a59d0e: Add client demo that implement open direct tcpip. (#454) (handewo) #454