All Projects → 1148118271 → ssh-rs

1148118271 / ssh-rs

Licence: Apache-2.0 license
In addition to encryption library, pure RUST implementation of SSH-2.0 client protocol (除加密库之外 纯rust实现的 ssh-2.0 client 协议)

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to ssh-rs

Ssh
Native SSH client in R based on libssh
Stars: ✭ 111 (+516.67%)
Mutual labels:  ssh, ssh-client
Sshfs Gui
SSHFS GUI Wrapper for Mac OS X
Stars: ✭ 154 (+755.56%)
Mutual labels:  ssh, ssh-client
Superputty
The SuperPuTTY Window Manager for putty sessions
Stars: ✭ 1,572 (+8633.33%)
Mutual labels:  ssh, ssh-client
Iap Desktop
IAP Desktop is a Windows application that provides zero-trust Remote Desktop and SSH access to Linux and Windows VMs on Google Cloud.
Stars: ✭ 96 (+433.33%)
Mutual labels:  ssh, ssh-client
Easyssh
The SSH connection manager to make your life easier.
Stars: ✭ 207 (+1050%)
Mutual labels:  ssh, ssh-client
Sidedoor
SSH connection daemon for Debian/Raspbian/Ubuntu/etc
Stars: ✭ 97 (+438.89%)
Mutual labels:  ssh, ssh-client
Wolfssh
wolfSSH is a small, fast, portable SSH implementation, including support for SCP and SFTP.
Stars: ✭ 142 (+688.89%)
Mutual labels:  ssh, ssh-client
Parallel Ssh
Asynchronous parallel SSH client library.
Stars: ✭ 864 (+4700%)
Mutual labels:  ssh, ssh-client
Github Keygen
Easy creation of secure SSH configuration for your GitHub account(s)
Stars: ✭ 183 (+916.67%)
Mutual labels:  ssh, ssh-client
Ssh2 Python
Bindings for libssh2 C library.
Stars: ✭ 166 (+822.22%)
Mutual labels:  ssh, ssh-client
Daggy
Daggy - Data Aggregation Utility. Open source, free, cross-platform, server-less, useful utility for remote or local data aggregation and streaming
Stars: ✭ 91 (+405.56%)
Mutual labels:  ssh, ssh-client
Bastillion
Bastillion is a web-based SSH console that centrally manages administrative access to systems. Web-based administration is combined with management and distribution of user's public SSH keys.
Stars: ✭ 2,730 (+15066.67%)
Mutual labels:  ssh, ssh-client
Webssh2
Web SSH Client using ssh2, socket.io, xterm.js, and express. webssh webssh2
Stars: ✭ 1,293 (+7083.33%)
Mutual labels:  ssh, ssh-client
Lssh
List selection type alternative ssh/scp/sftp client. Pure Go.
Stars: ✭ 110 (+511.11%)
Mutual labels:  ssh, ssh-client
Ssh Action
GitHub Actions for executing remote ssh commands.
Stars: ✭ 1,095 (+5983.33%)
Mutual labels:  ssh, ssh-client
Connectbot
ConnectBot is the first SSH client for Android.
Stars: ✭ 1,763 (+9694.44%)
Mutual labels:  ssh, ssh-client
Kitty
💻 KiTTY, a free telnet/ssh client for Windows
Stars: ✭ 791 (+4294.44%)
Mutual labels:  ssh, ssh-client
Ssb
Secure Shell Bruteforcer — A faster & simpler way to bruteforce SSH server
Stars: ✭ 832 (+4522.22%)
Mutual labels:  ssh, ssh-client
Sshj
ssh, scp and sftp for java
Stars: ✭ 2,016 (+11100%)
Mutual labels:  ssh, ssh-client
Jcabi Ssh
Java SSH client
Stars: ✭ 240 (+1233.33%)
Mutual labels:  ssh, ssh-client

In addition to encryption library, pure RUST implementation of SSH-2.0 client protocol

Because there is a lot of unfinished work, there may be problems if you compile the code directly from the main branch

Quick example (简单例子):

fn main() {
    let mut session = ssh::create_session();
    session.is_usage_log(true);
    session.set_user_and_password("root", "123456");
    session.connect("127.0.0.1:22").unwrap();
    
    // exec(&mut session);
    // shell(&mut session);
    // t_shell(&mut session);
    
  
    // let mut scp = session.open_scp().unwrap();
    // file upload
    // scp.upload("localPath", "remotePath").unwrap();
    // file download
    // scp.download("localPath", "remotePath").unwrap();
}

fn exec(session: &mut Session) {
    let exec: ChannelExec = session.open_exec().unwrap();
    let vec = exec.send_command("ls -all").unwrap();
    println!("{}", String::from_utf8(vec).unwrap());
}

fn shell(session: &mut Session) {
    let mut shell = session.open_shell().unwrap();
    thread::sleep(time::Duration::from_millis(200));
    let vec = shell.read().unwrap();
    let result = String::from_utf8(vec).unwrap();
    println!("{}", result);
    shell.write(b"ls -a\n").unwrap();
    thread::sleep(time::Duration::from_millis(200));
    let vec = shell.read().unwrap();
    let result = String::from_utf8(vec).unwrap();
    println!("{}", result);
    shell.close().unwrap();
}

fn t_shell(session: &mut Session) {
    let mut shell = session.open_shell().unwrap();
    loop {

        sleep(Duration::from_millis(300));

        let vec = shell.read().unwrap();
        if vec.is_empty() { continue }
        stdout().write(vec.as_slice()).unwrap();
        stdout().flush().unwrap();

        let mut cm = String::new();
        stdin().read_line(&mut cm).unwrap();
        shell.write(cm.as_bytes()).unwrap();

    }
}

Supported algorithms (支持的算法):

algorithms is supported
curve25519-sha256
ecdh-sha2-nistp256
ssh-ed25519
rsa
[email protected]

Supported authentication modes (支持的身份验证方式):

user auth is supported
publickey ×
password
hostbased ×

Supported channels (支持的连接通道)

channel is supported
shell
exec
subsystem ×

Not currently supported sftp (目前不支持 sftp)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].