#ssh #bindings #ssh2 #wraps #session

sshrs

ssh2 绑定库的包装器。简易 SSH

1 个不稳定版本

0.1.0 2019年11月26日

#12 in #ssh2

MIT 许可证

8KB
115 行代码(不包括注释)

sshrs

使用 Rust 编写的 SSH 库。该库包装了 ssh2 绑定库,使其更容易使用。简单来说,它旨在快速方便地进行 SSH 连接,同时保持活跃会话。

注意:转发、隧道和交互式外壳尚未完全实现。

用法

连接

let mut tunn = ssh::SSH::new(&HOST, 22);
tunn.connect(&USR, &PWD).unwrap();
assert_eq!(tunn.authed(), true);

使用 ssh-agent 连接

let mut tunn = ssh::SSH::new(&HOST, 22);
tunn.connect_agent(&USR).unwrap();
assert_eq!(tunn.authed(), true);

执行命令

let result = tunn.run_command("uname -a").unwrap();
println!("Command Output: {}", result)

上传文件

let src = Path::new("/home/ssh/important.txt");
let dest = Path::new("/tmp/destination.txt");
let result = tunn.upload_file(&src, dest);

下载文件

let fpath = Path::new("/tmp/downloadme.tar.gz");
let (contents, stat) = tunn.get_file(fpath).unwrap();
println!("File Contents: {}", String::from_utf8(contents).unwrap());

依赖

~3.5MB
~75K SLoC