From 36e16090026f626253b4a1ba09c47f462d22e6ee Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sun, 4 Sep 2022 16:54:01 +0800 Subject: [PATCH] feat: update ssh-rs --- __shell/sshrs/Cargo.lock | 4 ++-- __shell/sshrs/src/main.rs | 26 ++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/__shell/sshrs/Cargo.lock b/__shell/sshrs/Cargo.lock index 75948f3..50f1b25 100644 --- a/__shell/sshrs/Cargo.lock +++ b/__shell/sshrs/Cargo.lock @@ -508,9 +508,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899bf02746a2c92bf1053d9327dadb252b01af1f81f90cdb902411f518bc7215" +checksum = "cf9db03534dff993187064c4e0c05a5708d2a9728ace9a8959b77bedf415dac5" dependencies = [ "cfg-if", "cpufeatures", diff --git a/__shell/sshrs/src/main.rs b/__shell/sshrs/src/main.rs index 5672051..081be1c 100644 --- a/__shell/sshrs/src/main.rs +++ b/__shell/sshrs/src/main.rs @@ -1,4 +1,6 @@ -use ssh_rs::{Session, ssh}; +use std::thread::sleep; +use std::time::Duration; +use ssh_rs::{ChannelShell, Session, ssh}; use ssh_rs::key_pair::KeyPairType; fn main() { @@ -16,4 +18,24 @@ fn main() { let exec = session.open_exec().unwrap(); let v = exec.send_command("ls -l -a --color ~/").unwrap(); println!("{}", String::from_utf8_lossy(&v).to_string()); -} \ No newline at end of file + + println!("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>"); + let mut shell: ChannelShell = session.open_shell().unwrap(); + run_shell(&mut shell); + + shell.close().ok(); + session.close().ok(); +} + +fn run_shell(shell: &mut ChannelShell) { + sleep(Duration::from_millis(500)); + let vec = shell.read().unwrap(); + println!("{}", String::from_utf8(vec).unwrap()); + + shell.write(b"ls\n").unwrap(); + + sleep(Duration::from_millis(500)); + + let vec = shell.read().unwrap(); + println!("{}", String::from_utf8(vec).unwrap()); +} \ No newline at end of file