标签:
试一下图片插入
再来一段代码看看
using System;
using System.Windows.Forms;
using Tamir.SharpSsh.jsch;
?
/* PortForwardingR.cs
* ====================================================================
* The following example was posted with the original JSch java library,
* and is translated to C# to show the usage of SharpSSH JSch API
* ====================================================================
* */
namespace sharpSshTest.jsch_samples
{
????/// <summary>
????/// This program will demonstrate the port forwarding like option -R of
????/// ssh command; the given port on the remote host will be forwarded to
????/// the given host and port on the local side.
????/// You will be asked username, hostname, port:host:hostport and passwd.
????/// If everything works fine, you will get the shell prompt.
????/// Try the port on remote host.
????/// </summary>
????public class PortForwardingR
????{
????????public static void RunExample(String[] arg)
????????{
????????????//int port;
?
????????????try
????????????{
????????????????//Create a new JSch instance
????????????????JSch jsch=new JSch();
?
????????????????//Prompt for username and server host
????????????????Console.WriteLine("Please enter the user and host info at the popup window...");
????????????????String host = InputForm.GetUserInput
????????????????????("Enter username@hostname",
????????????????????Environment.UserName+"@localhost");
????????????????String user=host.Substring(0, host.IndexOf(‘@‘));
????????????????host=host.Substring(host.IndexOf(‘@‘)+1);
?
????????????????//Create a new SSH session
????????????????Session session=jsch.getSession(user, host, 22);
?
????????????????//Get from user the remote port, local host and local host port
????????????????String foo = InputForm.GetUserInput("Enter -R port:host:hostport","port:host:hostport");
????????????????int rport=int.Parse(foo.Substring(0, foo.IndexOf(‘:‘)));
????????????????foo=foo.Substring(foo.IndexOf(‘:‘)+1);
????????????????String lhost=foo.Substring(0, foo.IndexOf(‘:‘));
????????????????int lport=int.Parse(foo.Substring(foo.IndexOf(‘:‘)+1));
?
????????????????// username and password will be given via UserInfo interface.
????????????????UserInfo ui=new MyUserInfo();
????????????????session.setUserInfo(ui);
????????????????session.connect();
?
????????????????Console.WriteLine(host+":"+rport+" -> "+lhost+":"+lport);
?
????????????????//Set port forwarding on the opened session
????????????????session.setPortForwardingR(rport, lhost, lport);????????????
????????????}
????????????catch(Exception e)
????????????{
????????????????Console.WriteLine(e.Message);
????????????}
????????}
?
????????/// <summary>
????????/// A user info for getting user data
????????/// </summary>
????????public class MyUserInfo : UserInfo, UIKeyboardInteractive
????????{
????????????/// <summary>
????????????/// Holds the user password
????????????/// </summary>
????????????private String passwd;
?
????????????/// <summary>
????????????/// Returns the user password
????????????/// </summary>
????????????public String getPassword(){ return passwd; }
?
????????????/// <summary>
????????????/// Prompt the user for a Yes/No input
????????????/// </summary>
????????????public bool promptYesNo(String str)
????????????{
????????????????return InputForm.PromptYesNo(str);
????????????}
????????????
????????????/// <summary>
????????????/// Returns the user passphrase (passwd for the private key file)
????????????/// </summary>
????????????public String getPassphrase(){ return null; }
?
????????????/// <summary>
????????????/// Prompt the user for a passphrase (passwd for the private key file)
????????????/// </summary>
????????????public bool promptPassphrase(String message){ return true; }
?
????????????/// <summary>
????????????/// Prompt the user for a password
????????????/// </summary>\
????????????public bool promptPassword(String message)
????????????{
????????????????passwd=InputForm.GetUserInput(message, true);
????????????????return true;
????????????}
?
????????????/// <summary>
????????????/// Shows a message to the user
????????????/// </summary>
????????????public void showMessage(String message)
????????????{
????????????????InputForm.ShowMessage(message);
????????????}
?
????????????public string[] promptKeyboardInteractive(string destination, string name, string instruction, string[] prompt,
???????????? bool[] echo)
????????????{
????????????????string prmpt = prompt != null && prompt.Length > 0 ? prompt[0] : "";
????????????????passwd=InputForm.GetUserInput(prmpt, true);
????????????????return new string[] { passwd };
????????????}
????????}
????}
}
标签:
原文地址:http://www.cnblogs.com/stainboy/p/4581979.html