1. 程式人生 > >c# 連接操作linux

c# 連接操作linux

加ss 背景 readline isp connect 一個 load username chang

0.背景

現在linux重要性是顯然易見的,學習linux是必須,通過程序來來控制linux 也能發揮很大的作用。比如我們可以做一個自動化部署的程序,來發布程序到linux上面。

1.在項目中添加SSH.NET

技術分享

2.如何使用SSH.NET 直接上來代碼

 private static string host = "xxx.xxx.xxx.xx";
        private static string username = "root";
        private static string password = "pwd";

        // Setup Credentials and Server Information
public static ConnectionInfo ConnNfo = new ConnectionInfo(host, 22, username, new AuthenticationMethod[]{ // Pasword based Authentication new PasswordAuthenticationMethod(username,password), // Key Based Authentication (using keys in OpenSSH Format)
//new PrivateKeyAuthenticationMethod("username",new PrivateKeyFile[]{ // new PrivateKeyFile(@"..\openssh.key","passphrase") //}), } ); static void Main(string[] args) { ExecuteCommand1(); ExecuteCommand2(); Upload(); Console.ReadLine(); }
/// <summary> /// 開始 /// </summary> public void Start() { using (var client = new SshClient(host, username, password)) { try { string command = "ls"; client.Connect(); string result = client.RunCommand(command).Execute(); Console.WriteLine(result); client.Disconnect(); } catch (Exception e1) { Console.WriteLine(e1.Message); } } } /// <summary> /// 執行 command /// </summary> public static void ExecuteCommand1() { using (var sshclient = new SshClient(ConnNfo)) { sshclient.Connect(); using (var cmd = sshclient.CreateCommand("cd /local && ls")) { string result = cmd.Execute(); Console.WriteLine("Command>" + cmd.CommandText); Console.WriteLine("Return Value = {0}", cmd.ExitStatus); Console.WriteLine("result>" + result); } sshclient.Disconnect(); } } /// <summary> /// 執行 command /// </summary> public static void ExecuteCommand2() { // Execute (SHELL) Commands using (var sshclient = new SshClient(ConnNfo)) { sshclient.Connect(); // quick way to use ist, but not best practice - SshCommand is not Disposed, ExitStatus not checked... Console.WriteLine(sshclient.CreateCommand("cd /local && ls -lah").Execute()); Console.WriteLine(sshclient.CreateCommand("pwd").Execute()); Console.WriteLine(sshclient.CreateCommand("cd /local/soft && ls -lah").Execute()); sshclient.Disconnect(); } } /// <summary> /// 上傳 /// </summary> public static void Upload() { using (var sftp = new SftpClient(ConnNfo)) { string uploadfn = "Renci.SshNet.dll"; sftp.Connect(); sftp.ChangeDirectory("/local/soft"); using (var uplfileStream = System.IO.File.OpenRead(uploadfn)) { sftp.UploadFile(uplfileStream, uploadfn, true); } sftp.Disconnect(); } }

c# 連接操作linux