perf: Migrated to libssh.org on Linux and MacOS for better ssh agent support.
Some checks failed
Linux / build (push) Has been cancelled
MacOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled

closes #337
This commit is contained in:
veeso
2025-09-20 18:13:20 +02:00
parent 86660a0cc9
commit 205d2813ad
4 changed files with 38 additions and 4 deletions

View File

@@ -48,6 +48,7 @@ Released on 20/09/2025
- [Issue 356](https://github.com/veeso/termscp/issues/356): Fixed SSH auth issue not trying with the password if any RSA key was found.
- [Issue 334](https://github.com/veeso/termscp/issues/334): SMB support for MacOS with vendored build of libsmbclient.
- [Issue 337](https://github.com/veeso/termscp/issues/337): Migrated to libssh.org on Linux and MacOS for better ssh agent support.
## 0.18.0

26
Cargo.lock generated
View File

@@ -2574,6 +2574,31 @@ dependencies = [
"redox_syscall",
]
[[package]]
name = "libssh-rs"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3066e110d6bb95a5addbd9c2ee595efdaeecaddd4793f3803dfee2968a74c685"
dependencies = [
"bitflags 1.3.2",
"libc",
"libssh-rs-sys",
"openssl-sys",
"thiserror 1.0.69",
]
[[package]]
name = "libssh-rs-sys"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01d528ea9ac190fa364ff12193da82222dfc645e7ab28666ae91493bd288a1a0"
dependencies = [
"cc",
"libz-sys",
"openssl-sys",
"pkg-config",
]
[[package]]
name = "libssh2-sys"
version = "0.3.1"
@@ -3608,6 +3633,7 @@ checksum = "d29de4702886ae0e4433904d4f6f9b2ed2961d31d76a7e7bef58305097238eb6"
dependencies = [
"chrono",
"lazy-regex",
"libssh-rs",
"log",
"path-slash",
"remotefs",

View File

@@ -90,7 +90,10 @@ remotefs-ftp = { version = "^0.3", features = [
"native-tls-vendored",
"native-tls",
] }
remotefs-ssh = { version = "^0.7", features = ["libssh2-vendored"] }
remotefs-ssh = { version = "^0.7", default-features = false, features = [
"find",
"libssh-vendored",
] }
uzers = "0.12"
[target."cfg(target_family = \"windows\")".dependencies]

View File

@@ -13,7 +13,11 @@ use remotefs_kube::KubeMultiPodFs as KubeFs;
use remotefs_smb::SmbOptions;
#[cfg(smb)]
use remotefs_smb::{SmbCredentials, SmbFs};
use remotefs_ssh::{LibSsh2Session, ScpFs, SftpFs, SshAgentIdentity, SshConfigParseRule, SshOpts};
#[cfg(windows)]
use remotefs_ssh::LibSsh2Session as SshSession;
#[cfg(unix)]
use remotefs_ssh::LibSshSession as SshSession;
use remotefs_ssh::{ScpFs, SftpFs, SshAgentIdentity, SshConfigParseRule, SshOpts};
use remotefs_webdav::WebDAVFs;
#[cfg(not(smb))]
@@ -141,7 +145,7 @@ impl RemoteFsBuilder {
fn scp_client(
params: GenericProtocolParams,
config_client: &ConfigClient,
) -> ScpFs<LibSsh2Session> {
) -> ScpFs<SshSession> {
Self::build_ssh_opts(params, config_client).into()
}
@@ -149,7 +153,7 @@ impl RemoteFsBuilder {
fn sftp_client(
params: GenericProtocolParams,
config_client: &ConfigClient,
) -> SftpFs<LibSsh2Session> {
) -> SftpFs<SshSession> {
Self::build_ssh_opts(params, config_client).into()
}