Tag: ssh.net

SSH.NET passwd没有执行

我似乎无法使这个库工作。 我正在做一些非常简单的事情,但我仍然无法做到这一点。 client.Connect(); client.RunCommand(“sudo passwd test”); Thread.Sleep(1000); client.RunCommand(“testtest”); Thread.Sleep(1000); client.RunCommand(“12345”); Thread.Sleep(1000); client.RunCommand(“12345”); bool primera = true; client.Disconnect(); 如果我尝试使用刚刚发布的凭据登录测试失败。 但是,如果我通过终端通过普通SSH执行相同的命令,我可以登录。为什么SSH.NET没有执行这些命令?

SSH.NET SFTP递归获取目录和文件列表

我正在使用Renci.SshNet库通过使用SFTP递归获取文件和目录列表。 我能够连接SFTP站点,但我不知道如何在C#中递归获取目录和文件列表。 我没有找到任何有用的例子。 有人试过吗? 如果是这样,你可以发布一些关于如何递归获取这些文件和文件夹的示例代码。 谢谢, Prav

无法在C#中使用SSH.NET上传文件SFTP – 权限被拒绝

我正在尝试使用SF.NET协议使用C#使用SSH.NET库上传文件。 以下是我正在使用的代码 FileInfo f=new FileInfo(“C:\\mdu\\abcd.xml”); string uploadfile=f.FullName; Console.WriteLine(f.Name); Console.WriteLine(“uploadfile”+uploadfile); var client = new SftpClient(host, port, username, password); client.Connect(); if(client.IsConnected){ Console.WriteLine(“I AM CONNECTED”); } var fileStream = new FileStream(uploadfile, FileMode.Open); if(fileStream!=null){ Console.WriteLine(“YOU ARE NOT NULL”); } client.BufferSize = 4 * 1024; client.UploadFile(fileStream, f.Name,null); client.Disconnect(); client.Dispose(); 我能够连接,文件流filestream是NULL。 但我在尝试上传文件时收到PermissionDeniedException 。 Unhandled Exception: Renci.SshNet.Common.SftpPermissionDeniedException: Permission denied at Renci.SshNet.Sftp.SftpSession.RequestOpen(String path, […]

SSH.Net异步文件下载

我试图使用SSH.NET从SFTP服务器异步下载文件。 如果我同步执行它,它工作正常,但当我执行异步时,我得到空文件。 这是我的代码: var port = 22; string host = “localhost”; string username = “user”; string password = “password”; string localPath = @”C:\temp”; using (var client = new SftpClient(host, port, username, password)) { client.Connect(); var files = client.ListDirectory(“”); var tasks = new List(); foreach (var file in files) { using (var saveFile = File.OpenWrite(localPath + […]

是否可以使用SSH.NET从单个登录会话执行多个SSH命令?

我正在使用带有SSH.NET的C#,并且能够使客户端SSH连接正常工作,以便跨SSH执行命令。 我可以连接到虚拟机管理程序VM上的Linux安装,没有任何问题,读回StdOut和StdErr等。 但是,每个命令都像一个全新的会话 – 它始终从/home/user ,即使您使用最后一个命令从另一个目录完成。 您可以使用分号将多个命令串起来: pwd; cd ..; pwd /home/user /home 但是如果我执行: pwd /home/user 我回到了该用户的主目录。 我没有断开和关闭命令之间的会话。 以下是连续几个命令的示例代码,使用路径中的更改来说明问题: public void MultiCommandTest() { string output1, output2; var host = Config.SshHostName; var port = Config.SshHostPort; var user = Config.SshUsername; var pass = Config.SshPassword; var auth = new PasswordAuthenticationMethod(user, pass); var info = new ConnectionInfo(host,port,user,auth); using (var […]

使用SSH.NET在ProgressBar中显示文件下载的进度

我想在ProgressBar上显示下载过程的ProgressBar 。 我尝试过这样的代码来上传 ,但我失败了。 这是我尝试失败的一个例子 private void button5_Click(object sender, EventArgs e) { Task.Run(() => Download()); } private void Download() { try { int Port = (int)numericUpDown1.Value; string Host = comboBox1.Text; string Username = textBox3.Text; string Password = textBox4.Text; string SourcePath = textBox5.Text; string RemotePath = textBox6.Text; string FileName = textBox7.Text; using (var file = File.OpenWrite(SourcePath […]

在SSH.NET中使用PPK密钥进行身份validation

我正在创建一个窗口服务,用于从SFTP服务器下载文件。 为此,我使用的是Renci.SshNet , Renci.SshNet.Common和Renci.SshNet.Sftp 。 我有这个代码: String Host = “HostName”; int Port = 22; String RemoteFileDirectory = Convert.ToString(ConfigurationManager.AppSettings[“SourcePath”]); String Username = “UserName”; String Password = “*******”; var KeybasedMethod = new KeyboardInteractiveAuthenticationMethod(Username); KeybasedMethod.AuthenticationPrompt += (sender, e) => { e.Prompts.First().Response = password; }; AuthenticationMethod[] methods = new AuthenticationMethod[] { new PrivateKeyAuthenticationMethod(Username, new PrivateKeyFile(@”Z:\SFTP SETUP\CJ22″)), KeybasedMethod }; ConnectionInfo […]

SSH.NET不处理我的shell输入命令

我正在使用SSH.NET从C#中的控制台应用程序连接到我的Raspberry Pi。 我想从我自己的流中发送文本,通过StreamWriter写入它。 问题是它什么也没做。 这就像WriteLine(“ls”)不会产生任何影响。 这是代码: using System; using System.IO; using Renci.SshNet; namespace SSHTest { class Program { static void Main(string[] args) { var ssh = new SshClient(“raspberrypi”, 22, “pi”, “raspberry”); ssh.Connect(); var input = new MemoryStream(); var streamWriter = new StreamWriter(input) { AutoFlush = true }; var shell = ssh.CreateShell(input, Console.OpenStandardOutput(), new MemoryStream()); shell.Start(); […]

基于SSH.NET的彩色终端模拟器

我正在使用SSH.NET为UWP创建我的终端应用程序。 现在,我已经能够使用库发送/接收数据了,但我想做一些像putty应用程序,它显示不同颜色的文本,甚至能够使用Linux“vi编辑文件“编辑。 有没有办法通过这个库获取颜色/位置信息? 谢谢!

如何在C#中的SSH服务器上运行命令?

我需要使用C#代码执行此操作: 在后台打开putty.exe(这就像一个cmd窗口) 使用其IP地址登录远程主机 输入用户名和密码 一个接一个地执行几个命令。 运行另一个命令,获取响应,告诉我在成功执行之前运行的命令 所以我试着这样做: ProcessStartInfo proc = new ProcessStartInfo() { FileName = @”C:\putty.exe”, UseShellExecute = true, //I think I need to use shell execute ? RedirectStandardInput = false, RedirectStandardOutput = false, Arguments = string.Format(“-ssh {0}@{1} 22 -pw {2}”, userName, hostIP, password) … //How do I send commands to be executed here ? […]