Tag: ssh

原始ssh连接(低级)

作为一个小型(大型)业余爱好项目,我打算在C#中创建一个(非常原始的)ssh-2.0客户端。 这是为了探索和更好地理解DH,并帮助我的加密熟悉:) 根据RFC 4253,我已经开始了这样的初始连接: (省略不相关的变量预设等) Random cookie_gen = new Random(); while ((ssh_response = unsecure_reader.ReadLine()) != null) { MessageBox.Show(ssh_response); if (ssh_response.StartsWith(“SSH-2.0-“) { // you told me your name, now I’ll tell you mine ssh_writer.Write(“SSH-2.0-MYSSHCLIENT\r\n”); ssh_writer.Flush(); // now I should write up my supported (which I’ll keep to the required as per rfc 4253) ssh_writer.Write(0x20); // SSH_MSG_KEXINIT […]

Renci SSH.NET:是否可以创建包含不存在的子文件夹的文件夹

我目前正在使用Renci SSH.NET使用SFTP将文件和文件夹上传到Unix服务器,并使用创建目录 sftp.CreateDirectory(“//server/test/test2”); 只要文件夹“test”已经存在,它就能完美运行。 如果没有, CreateDirectory方法将失败,并且每次尝试创建包含多个级别的目录时都会发生这种情况。 是否有一种优雅的方式来递归生成字符串中的所有目录? 我假设CreateDirectory方法自动执行此操作。

C#通过SSH.NET发送Ctrl + Y.

我目前正在使用SSH.net并尝试连接到Avaya交换机。 我的代码如下所示: using (var client = new SshClient(ip, username, password)) { client.Connect(); //Sending CTRL+Y SshCommand x = client.RunCommand(“enable”); client.Disconnect(); } 我还没有找到解决方案。 是否有任何解决方法或命令可用于发送我的CTRL + Y ?

在C#中通过SSH.NET进行多跳SSH

我正在使用SSH到Linux机器,并再次从那里想要SSH到另一台Linux机器来执行几个Perforce任务。 using (SshClient ssh = new SshClient(“ip address”,”username”, “pwd”)) { ssh.Connect(); command = ssh.CreateCommand(“ssh hostname”); result = command.Execute(); Console.WriteLine(result); } ssh hostname是密码少 ssh的地方。 如何控制第二个SSH会话并将命令传递给它? 甚至探索了CreateShell函数,但似乎没有建议自动化。

SSH.NET:是否可以使用SFTP上传文件并保留源文件中的文件日期?

目前,我使用Renci SSH.NET库使用SFTP将文件上传到Unix服务器。 我不喜欢的一件事是,在上传文件后,创建和修改日期会更改为上传时间。 我想保留源文件中的原始文件日期,这可能吗?

在SSH.NET中执行长时间命令并在TextBox中连续显示结果

有没有办法执行Linux命令并在PuTTY等Windows应用程序的文本框中显示结果。 例如,我正在尝试执行以下命令 wget http://centos-webpanel.com/cwp-latest sh cwp-latest 使用以下代码 SshClient sshclient = new SshClient(IPtxtBox.Text, UserNameTxt.Text, PasswordTxt.Text); sshclient.Connect(); ShellStream stream = sshclient.CreateShellStream(“customCommand”, 80, 24, 800, 600, 1024); resultTxt.Text = SSHCommand.SendCommand(stream, “wget http://centos-webpanel.com/cwp-latest && sh cwp-latest”); private static void WriteStream(string cmd, StreamWriter writer, ShellStream stream) { writer.WriteLine(cmd); while (stream.Length == 0) Thread.Sleep(500); } private static string ReadStream(StreamReader reader) { […]

如何写入stdin /从SSH连接的远程进程的stdout读取? (Renci.SshNet)

我想连接一个SSH服务器,在连接时,它运行一个自定义命令,它需要XML作为输入(UTF-8编码,多行,每行XML文档末尾有一个特殊行标记它的结尾)并输出XML( UTF-8编码,多行,末尾有相同的特殊行,表示文档结尾)。 目前有一种使用plink.exe(PuTTy成名)的机制(意思是:服务器端确实按指定的方式工作),但我正在消除对外部进程的需求。 我正在试图Renci.SshNet库,但我发现文档不合适,找不到我需要的例子。 我到目前为止的尝试: using System; using Renci.SshNet; namespace ServerConnect { public class ServerConnection { private const string EOC= “*-* COMMAND DELIMITER *-*”; private SshClient scon; private System.IO.Stream stdin, stdout, stderr; private System.IO.StreamWriter stdin_writer; private System.IO.StreamReader stdout_reader; private Shell shell; public ServerConnection (string keyFileName, string keyFilePassphrase) { ConnectionInfo ci= new ConnectionInfo(“my.server.local”, 22, “datamgr”, new […]

SSH.NET上传整个文件夹

我在C#2015中使用SSH.NET。 通过这种方法,我可以将文件上传到我的SFTP服务器。 public void upload() { const int port = 22; const string host = “*****”; const string username = “*****”; const string password = “*****”; const string workingdirectory = “*****”; string uploadfolder = @”C:\test\file.txt”; Console.WriteLine(“Creating client and connecting”); using (var client = new SftpClient(host, port, username, password)) { client.Connect(); Console.WriteLine(“Connected to {0}”, host); client.ChangeDirectory(workingdirectory); […]

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没有执行这些命令?

.NET SSH端口转发

我正在尝试将SSH端口转发到我正在编写的.net应用程序中。 我尝试过使用sharpSSH ,但它要求用户每次都输入密码,我不希望这样。 我将处理存储密码。 我已经下载了Granados ,但基本上没有文档。 当我筛选Granados源代码时,是否有人知道如何使用Granados或任何其他.NET 免费 SSH库完成端口转发?