2015-09-17 46 views
1

我正在創建一個命令行工具,它可以從我們的集羣動態地查找服務器,然後基於集羣檢索Amazon S3存儲桶中保存的相應私鑰並將其複製到本地臨時文件以連接到服務器。將SSH命令連接到stdout

我該如何SSH進入IP地址,然後允許用戶與SSH會話進行交互?

此示例將名爲「平臺」的集羣中打開一個SSH會話到一臺機器:

company_name ssh:platform 

我做這個之前,在Ruby中,像這樣:

exec("ssh -i #{private_key_file.path} -R 52698:localhost:52698 [email protected]#{platform_ip}") 

回答

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(); 
+0

你聯繫上的人是叉子原來是在這裏:https://github.com/alexcrichton/ssh2-rs – SBSTP

+0

啊,謝謝,我糾正了鏈接。 – llogiq