public static void RunExample(String[] arg) { 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); // username and password will be given via UserInfo interface. UserInfo ui = new MyUserInfo(); session.setUserInfo(ui); //Connect to remote SSH server session.connect(); //Get subsystem name from user String subsystem = InputForm.GetUserInput("Enter subsystem name", ""); //Open a new Subsystem channel on the SSH session Channel channel = session.openChannel("subsystem"); ((ChannelSubsystem)channel).setSubsystem(subsystem); ((ChannelSubsystem)channel).setPty(true); //Redirect standard I/O to the SSH channel channel.setInputStream(Console.OpenStandardInput()); channel.setOutputStream(Console.OpenStandardOutput()); ((ChannelSubsystem)channel).setErrStream(Console.OpenStandardError()); //Connect the channel channel.connect(); Console.WriteLine("-- Subsystem '" + subsystem + "' is connected using the {0} cipher", session.getCipher()); //Wait till channel is closed while (!channel.isClosed()) { System.Threading.Thread.Sleep(500); } //Disconnect from remote server channel.disconnect(); session.disconnect(); } catch (Exception e) { Console.WriteLine(e); } }
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 }); }
public static void RunExample(String[] arg) { 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); // username and password will be given via UserInfo interface. UserInfo ui = new MyUserInfo(); session.setUserInfo(ui); //Add AES128 as default cipher in the session config store System.Collections.Hashtable config = new System.Collections.Hashtable(); config.Add("cipher.s2c", "aes128-cbc,3des-cbc"); config.Add("cipher.c2s", "aes128-cbc,3des-cbc"); session.setConfig(config); //Connect to remote SSH server session.connect(); //Open a new Shell channel on the SSH session Channel channel = session.openChannel("shell"); //Redirect standard I/O to the SSH channel channel.setInputStream(Console.OpenStandardInput()); channel.setOutputStream(Console.OpenStandardOutput()); //Connect the channel channel.connect(); Console.WriteLine("-- Shell channel is connected using the {0} cipher", session.getCipher()); //Wait till channel is closed while (!channel.isClosed()) { System.Threading.Thread.Sleep(500); } //Disconnect from remote server channel.disconnect(); session.disconnect(); } catch (Exception e) { Console.WriteLine(e.Message); } }
public static void RunExample(String[] arg) { try { JSch jsch = new JSch(); //Get the "known hosts" filename from the user Console.WriteLine("Please choose your private key file..."); String file = InputForm.GetFileFromUser("Choose your privatekey(ex. ~/.ssh/id_dsa)"); Console.WriteLine("You chose " + file + "."); //Add the identity file to JSch jsch.addIdentity(file); //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); // username and password will be given via UserInfo interface. UserInfo ui = new MyUserInfo(); session.setUserInfo(ui); //Connect to remote SSH server session.connect(); //Open a new Shell channel on the SSH session Channel channel = session.openChannel("shell"); //Redirect standard I/O to the SSH channel channel.setInputStream(Console.OpenStandardInput()); channel.setOutputStream(Console.OpenStandardOutput()); //Connect the channel channel.connect(); //Wait till channel is closed while (!channel.isClosed()) { System.Threading.Thread.Sleep(500); } //Disconnect from remote server channel.disconnect(); session.disconnect(); } catch (Exception e) { Console.WriteLine(e); } }
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); // username and password will be given via UserInfo interface. UserInfo ui = new MyUserInfo(); session.setUserInfo(ui); session.connect(); //Get from user the remote host and remote host port String foo = InputForm.GetUserInput("Enter host and port", "host:port"); host = foo.Substring(0, foo.IndexOf(':')); port = int.Parse(foo.Substring(foo.IndexOf(':') + 1)); Console.WriteLine("System.{in,out} will be forwarded to " + host + ":" + port + "."); Channel channel = session.openChannel("direct-tcpip"); ((ChannelDirectTCPIP)channel).setInputStream(Console.OpenStandardInput()); ((ChannelDirectTCPIP)channel).setOutputStream(Console.OpenStandardOutput()); ((ChannelDirectTCPIP)channel).setHost(host); ((ChannelDirectTCPIP)channel).setPort(port); channel.connect(); while (!channel.isClosed()) { System.Threading.Thread.Sleep(500); } channel.disconnect(); session.disconnect(); } catch (Exception e) { Console.WriteLine(e); } }
public static void RunExample(String[] arg) { //Get the private key filename from the user Console.WriteLine("Please choose your private key file..."); String pkey = InputForm.GetFileFromUser("Choose your privatekey(ex. ~/.ssh/id_dsa)"); Console.WriteLine("You chose " + pkey + "."); //Create a new JSch instance JSch jsch = new JSch(); try { //Load the key pair KeyPair kpair = KeyPair.load(jsch, pkey); //Print the key file encryption status Console.WriteLine(pkey + " has " + (kpair.isEncrypted()?"been ":"not been ") + "encrypted"); String passphrase = ""; while (kpair.isEncrypted()) { passphrase = InputForm.GetUserInput("Enter passphrase for " + pkey, true); if (!kpair.decrypt(passphrase)) { Console.WriteLine("failed to decrypt " + pkey); } else { Console.WriteLine(pkey + " is decrypted."); } } passphrase = ""; passphrase = InputForm.GetUserInput("Enter new passphrase for " + pkey + " (empty for no passphrase)", true); //Set the new passphrase kpair.setPassphrase(passphrase); //write the key to file kpair.writePrivateKey(pkey); //free the resource kpair.dispose(); } catch (Exception e) { Console.WriteLine(e.Message); } }
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 local port, remote host and remote host port String foo = InputForm.GetUserInput("Enter -L port:host:hostport", "port:host:hostport"); int lport = int.Parse(foo.Substring(0, foo.IndexOf(':'))); foo = foo.Substring(foo.IndexOf(':') + 1); String rhost = foo.Substring(0, foo.IndexOf(':')); int rport = 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("localhost:" + lport + " -> " + rhost + ":" + rport); //Set port forwarding on the opened session session.setPortForwardingL(lport, rhost, rport); } catch (Exception e) { Console.WriteLine(e.Message); } }
/// <summary> /// Prompt the user for a password /// </summary>\ public bool promptPassword(String message) { passwd = InputForm.GetUserInput(message, true); return(true); }
public static void RunExample(params string[] arg) { if (arg.Length < 3) { Console.Error.WriteLine( "usage: java KeyGen rsa output_keyfile comment\n" + " java KeyGen dsa output_keyfile comment"); return; } try { //Get sig type ('rsa' or 'dsa') String _type = arg[0]; int type = 0; if (_type.Equals("rsa")) { type = KeyPair.RSA; } else if (_type.Equals("dsa")) { type = KeyPair.DSA; } else { Console.Error.WriteLine( "usage: java KeyGen rsa output_keyfile comment\n" + " java KeyGen dsa output_keyfile comment"); return; } //Output file name String filename = arg[1]; //Signature comment String comment = arg[2]; //Create a new JSch instance JSch jsch = new JSch(); //Prompt the user for a passphrase for the private key file String passphrase = InputForm.GetUserInput("Enter passphrase (empty for no passphrase)", true); //Generate the new key pair KeyPair kpair = KeyPair.genKeyPair(jsch, type); //Set a passphrase kpair.setPassphrase(passphrase); //Write the private key to "filename" kpair.writePrivateKey(filename); //Write the public key to "filename.pub" kpair.writePublicKey(filename + ".pub", comment); //Print the key fingerprint Console.WriteLine("Finger print: " + kpair.getFingerPrint()); //Free resources kpair.dispose(); } catch (Exception e) { Console.WriteLine(e); } return; }
public static void RunExample(String[] arg) { try { //Get the "known hosts" filename from the user Console.WriteLine("Please select your 'known_hosts' from the poup window..."); String file = InputForm.GetFileFromUser("Choose your known_hosts(ex. ~/.ssh/known_hosts)"); Console.WriteLine("You chose " + file + "."); //Create a new JSch instance JSch jsch = new JSch(); //Set the known hosts file var hkr = jsch.getHostKeyRepository(); hkr.setKnownHosts(file); // Get the KnownHosts repository from JSchs // HostKeyRepository hkr=jsch.getHostKeyRepository(); //Print all known hosts and keys HostKey[] hks = hkr.getHostKey(); HostKey hk; if (hks != null) { Console.WriteLine(); Console.WriteLine("Host keys in " + hkr.getKnownHostsRepositoryID() + ":"); for (int i = 0; i < hks.Length; i++) { hk = hks[i]; Console.WriteLine(hk.getHost() + " " + hk.getType() + " " + hk.getFingerPrint(jsch)); } Console.WriteLine(""); } //Now connect to the remote server... //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); // username and password will be given via UserInfo interface. UserInfo ui = new MyUserInfo(); session.setUserInfo(ui); //Connect to remote SSH server session.connect(); //Print the host key info //of the connected server: hk = session.getHostKey(); Console.WriteLine("HostKey: " + hk.getHost() + " " + hk.getType() + " " + hk.getFingerPrint(jsch)); //Open a new Shell channel on the SSH session Channel channel = session.openChannel("shell"); //Redirect standard I/O to the SSH channel channel.setInputStream(Console.OpenStandardInput()); channel.setOutputStream(Console.OpenStandardOutput()); //Connect the channel channel.connect(); Console.WriteLine("-- Shell channel is connected using the {0} cipher", session.getCipher()); //Wait till channel is closed while (!channel.isClosed()) { System.Threading.Thread.Sleep(500); } //Disconnect from remote server channel.disconnect(); session.disconnect(); } catch (Exception e) { Console.WriteLine(e.Message); } }
/// <summary> /// Prompt the user for a passphrase (passwd for the private key file) /// </summary> public bool promptPassphrase(String message) { passphrase = InputForm.GetUserInput(message, true); return(true); }