我试图用SharpSSH连接到Linux,但是我无法连接到Linux。 我想从我的.NET应用程序运行一些Linux命令。
安装说明:
SharpSsh – 通过SSH连接到UNIX的.NET库
– 创build帐户@ codeproject.com
( http://www.codeproject.com/Articles/11966/sharpSsh-A-Secure-Shell-SSH-library-for-NET (下载演示项目和二进制文件/ dll文件)
– 复制到“SharpSsh”文件夹中
我正在运行此下载附带的sharpSshTest控制台应用程序。 当我通过Putty手动SSH(端口22)到Linux相同的主机/login名/密码,我可以很好地连接。 当通过.NET连接相同的主机和证书时,我得到了Tamir.sharpSsh .NET库中引发的exception。
Windows应用程序的风格化安装程序
从.NET注册免费激活本机COM(activex)组件
如何在Windows任务栏中创build一个文本框?
如何将对象转换为未知types为T的IList <T>
Unix发行版和版本:
$ lsb_release -a No LSB modules are available. distributor ID: Debian Description: Debian GNU/Linux 5.0.9 (lenny) Release: 5.0.9 Codename: lenny
堆栈跟踪:
at Tamir.SharpSsh.jsch.Session.connect(Int32 connectTimeout) at Tamir.SharpSsh.jsch.Session.connect() at Tamir.SharpSsh.SshStream..ctor(String host,String username,String password) at sharpSshTest.sharpSshTest.SshStream() in C:Source{path}selenium_referencessharpSsh_DemosharpSsh.demosharpSshTest.cs:line 76
sharpSshTest.cs中的第76行:
SshStream ssh = new SshStream(host,user,pass);
e.Message的价值:
{"verify: False"}
这里的代码,如果有帮助:
using System; using Tamir.SharpSsh; using System.Threading; namespace sharpSshTest { /// <summary> /// Summary description for sharpSshTest. /// </summary> public class sharpSshTest { static string host,pass; public static void Main() { PrintVersion(); Console.WriteLine(); Console.WriteLine("1) Simple SSH session example using SshStream"); Console.WriteLine("2) SCP example from local to remote"); Console.WriteLine("3) SCP example from remote to local"); Console.WriteLine(); INPUT: int i=-1; Console.Write("Please enter your choice: "); try { i = int.Parse( Console.ReadLine() ); Console.WriteLine(); } catch { i=-1; } switch(i) { case 1: SshStream(); break; case 2: Scp("to"); break; case 3: Scp("from"); break; default: Console.Write("Bad input,"); goto INPUT; } } /// <summary> /// Get input from the user /// </summary> public static void Getinput() { Console.Write("Remote Host: "); host = Console.ReadLine(); Console.Write("User: "); user = Console.ReadLine(); Console.Write("Password: "); pass = Console.ReadLine(); Console.WriteLine(); } /// <summary> /// Demonstrates the SshStream class /// </summary> public static void SshStream() { Getinput(); try { Console.Write("-Connecting..."); SshStream ssh = new SshStream(host,pass); Console.WriteLine("OK ({0}/{1})",ssh.Cipher,ssh.Mac); Console.WriteLine("Server version={0},Client version={1}",ssh.ServerVersion,ssh.ClientVersion); Console.WriteLine("-Use the 'exit' command to disconnect."); Console.WriteLine(); //Sets the end of response character ssh.Prompt = "#"; //Remove terminal emulation characters ssh.RemoveTerminalEmulationCharacters = true; //Reads the initial response from the SSH stream Console.Write( ssh.ReadResponse() ); //Send commands from the user while(true) { string command = Console.ReadLine(); if (command.ToLower().Equals("exit")) break; //Write command to the SSH stream ssh.Write( command ); //Read response from the SSH stream Console.Write( ssh.ReadResponse() ); } ssh.Close(); //Close the connection Console.WriteLine("Connection closed."); } catch(Exception e) { Console.WriteLine(e.Message); } } /// <summary> /// Demonstrates the Scp class /// </summary> /// <param name="cmd">Either "to" or "from"</param> public static void Scp(string cmd) { Getinput(); string local=null,remote=null; if(cmd.ToLower().Equals("to")) { Console.Write("Local file: "); local = Console.ReadLine(); Console.Write("Remote file: "); remote = Console.ReadLine(); } else if(cmd.ToLower().Equals("from")) { Console.Write("Remote file: "); remote = Console.ReadLine(); Console.Write("Local file: "); local = Console.ReadLine(); } Scp scp = new Scp(); scp.OnConnecting += new FileTansferEvent(scp_OnConnecting); scp.OnStart += new FileTansferEvent(scp_OnProgress); scp.OnEnd += new FileTansferEvent(scp_OnEnd); scp.OnProgress += new FileTansferEvent(scp_OnProgress); try { if(cmd.ToLower().Equals("to")) scp.To(local,host,remote,pass); else if(cmd.ToLower().Equals("from")) scp.From(host,pass,local); } catch(Exception e) { Console.WriteLine(e.Message); } Console.ReadLine(); } static void PrintVersion() { try { System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(typeof(Tamir.SharpSsh.SshStream)); Console.WriteLine("sharpSsh v"+asm.GetName().Version); } catch { Console.WriteLine("sharpSsh v1.0"); } } #region SCP Event Handlers static ConsoleProgressBar progressBar; private static void scp_OnConnecting(int transferredBytes,int totalBytes,string message) { Console.WriteLine(); progressBar = new ConsoleProgressBar(); progressBar.Update(transferredBytes,totalBytes,message); } private static void scp_OnProgress(int transferredBytes,string message) { progressBar.Update(transferredBytes,message); } private static void scp_OnEnd(int transferredBytes,message); progressBar=null; } #endregion SCP Event Handlers } }
#if(DEBUG)在定制的基类库中不起作用
Process.Start(“IIS Manager.lnk”)失败,“系统找不到指定的文件”
Process.Start()失败的* .jpg文件
.net应用程序在通过计划任务触发时失败
看起来这个项目不好。 这里下载了一个新的,当你打开Visual Studio解决方案文件时,它由新的“SharpSSH”类库项目的实际源代码和名为“Examples”的控制台应用程序组成。
http://www.tamirgal.com/blog/page/SharpSSH.aspx#news
当启动“Examples”控制台应用程序,它的工作!
SharpSSH-1.1.1.13 JSch Smaples: ============= 1) Shell.cs 2) AES.cs 3) UserAuthPublicKey.cs 4) Sftp.cs 5) KeyGen.cs 6) KNownHosts.cs 7) ChangePassphrase.cs 8) PortForwardingL.cs 9) PortForwardingR.cs 10) StreamForwarding.cs 11) Subsystem.cs 12) ViaHTTP.cs SharpSSH Smaples: ================= 13) SSH Shell sample 14) SSH Expect Sample 15) SSH Exec Sample 16) SSH File Transfer 17) Exit Please enter your choice: 13 Enter Remote Host: {type host here} Enter Username: testjobs Use publickey authentication? [Yes|No] :No Enter Password: helloworld Connecting...OK Linux gmqa 2.6.32-5-686-bigmem #1 SMP Thu Apr 7 22:17:10 UTC 2011 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY,to the extent permitted by applicable law. Last login: Tue Mar 6 09:58:32 2012 from {machine name} testjobs@gmqa:~$
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。