首页 > 代码库 > c# 连接操作linux
c# 连接操作linux
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 = http://www.mamicode.com/{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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。