• 使用Microsoft Office Word编写博客


    感受一下Word强大的编辑能力吧!

    试一下图片插入

    再来一段代码看看

    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 };

                }

            }

        }

    }

  • 相关阅读:
    JAVA 分布式
    Spring Boot -01- 快速入门篇(图文教程)
    MyBatis -01- 初识 MyBatis + MyBatis 环境搭建
    Vue 框架-12-Vue 项目的详细开发流程
    Vue 框架-11-介绍src文件流程及根组件app+HBuilder 配置
    Vue 框架-10-搭建脚手架 CLI
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/stainboy/p/4581979.html
Copyright © 2020-2023  润新知