/// <summary> /// Get input from the user /// </summary> public static SshConnectionInfo GetInput() { SshConnectionInfo info = new SshConnectionInfo(); Console.Write("Enter Remote Host: "); info.Host = Console.ReadLine(); Console.Write("Enter Username: "******"Use publickey authentication? [Yes|No] :"); string resp = Console.ReadLine(); if (resp.ToLower().StartsWith("y")) { Console.Write("Enter identity key filename: "); info.IdentityFile = Console.ReadLine(); } else { Console.Write("Enter Password: "); info.Pass = Console.ReadLine(); } Console.WriteLine(); return(info); }
public static void RunExample() { try { SshConnectionInfo input = Util.GetInput(); string proto = GetProtocol(); SshTransferProtocolBase sshCp; if (proto.Equals("scp")) { sshCp = new Scp(input.Host, input.User); } else { sshCp = new Sftp(input.Host, input.User); } if (input.Pass != null) { sshCp.Password = input.Pass; } if (input.IdentityFile != null) { sshCp.AddIdentityFile(input.IdentityFile); } sshCp.OnTransferStart += new FileTransferEvent(sshCp_OnTransferStart); sshCp.OnTransferProgress += new FileTransferEvent(sshCp_OnTransferProgress); sshCp.OnTransferEnd += new FileTransferEvent(sshCp_OnTransferEnd); Console.Write("Connecting..."); sshCp.Connect(); Console.WriteLine("OK"); while (true) { string direction = GetTransferDirection(); if (direction.Equals("to")) { string lfile = GetArg("Enter local file ['Enter to cancel']"); if (lfile == "") { break; } string rfile = GetArg("Enter remote file ['Enter to cancel']"); if (rfile == "") { break; } sshCp.Put(lfile, rfile); } else { string rfile = GetArg("Enter remote file ['Enter to cancel']"); if (rfile == "") { break; } string lpath = GetArg("Enter local path ['Enter to cancel']"); if (lpath == "") { break; } sshCp.Get(rfile, lpath); } } Console.Write("Disconnecting..."); sshCp.Close(); Console.WriteLine("OK"); } catch (Exception e) { Console.WriteLine(e.Message); } }