将SSH命令连接到stdout

时间:2015-09-17 23:45:52

标签: ssh rust

我正在创建一个命令行工具,可以从我们的集群中动态查找服务器,然后根据集群检索Amazon s3存储桶中保存的相应私钥,并将其复制到本地的临时文件以连接到服务器。 / p>

我如何通过SSH连接到IP地址,然后允许用户与SSH会话进行交互?

此示例将打开一个名为" platform"的集群中的计算机的ssh会话:

company_name ssh:platform

我之前在Ruby中做过这样的事情:

exec("ssh -i #{private_key_file.path} -R 52698:localhost:52698 core@#{platform_ip}")

1 个答案:

答案 0 :(得分:4)

你可能想看一下ssh2-rs箱子;文档对您正在尝试完成的事情有很好的example

它的要点是你得到一个 channel_session 对象,它有从SSH控制台读取输出的方法(从这里的文档中复制):

let mut channel = sess.channel_session().unwrap();
channel.exec("ls").unwrap();
let mut s = String::new();
channel.read_to_string(&mut s).unwrap();