SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題(這里主要區分telnet)。
C#可以通過SharpSSH類庫登陸Linux服務器執行命令並得到回顯,讀了一下API,希望幫到有需要的這么做的同學。
首先需要到http://sourceforge.net/projects/sharpssh/下載對應的類庫,這里面也有相應介紹,如果想快速借鑒,可以參考我的代碼。
引用這個類庫到工程之后,構建SSHStream對象SshStream ssh = new SshStream(ip, root, pass);其中ip是服務器地址,root是用戶名,pass是用戶密碼。這里ssh默認端口號是22。通過ssh.Write(command)可以寫入命令,然后協商ssh.Flush()和 ssh.Write("/n")消除部分回顯,通過ssh.ReadResponse()可以獲得執行命令的顯示流 。源代碼如下:
public static string ssh_conn(string ip, string root, string pass, string command) { SshStream ssh = new SshStream(ip, root, pass); ssh.Prompt = "#"; ssh.RemoveTerminalEmulationCharacters = true; string response = ssh.ReadResponse(); ssh.Write(command); ssh.Flush(); ssh.Write("/n"); response = ssh.ReadResponse(); //Console.WriteLine(response); return response; }
