I am trying to use the following Rust code to connect to EC2 instances.
#[test]
fn client_ssh_timeout2() {
match Command::new("/usr/bin/ssh -i /tmp/.ssh/25.pem ubuntu@ip").spawn() {
Ok(_) => println!("Able to ssh"),
Err(e) => println!("{:?}", e),
};
}
But I am getting the following error
Error { repr: Os { code: 2, message: "No such file or directory" } }
Has anyone been able to use std::process::Command
or any other Rust library to connect to EC2 instances using PEM files? I tried using ssh2-rs(libssh2) but couldn't connect to EC2 instances.
This appears to be a misunderstanding of how to use std::process:Command
. Command::new
takes just the program:
fn new<S: AsRef<OsStr>>(program: S) -> Command
Command::arg
or Command::args
are used to provide the arguments.
You will want something like
Command::new("/usr/bin/ssh")
.args(&["-i", "/tmp/.ssh/25.pem", "ubuntu@ip"])
.spawn()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With