SSH.NET公钥认证
我知道私有密钥身份验证有效,但是我正在寻找公共密钥身份验证. 我正在尝试使用ssh.net和公共密钥建立连接. 在git bash终端我可以使用公共密钥连接并运行命令,但是当我尝试使用ssh.net连接到同一主机时,我会得到异常. 这是我尝试连接的方式: using (var client = new SshClient("host.name.com", port, "username")) { client.Connect(); // exception thrown here } 我也尝试了以下路线: var authMethod = new PrivateKeyAuthenticationMethod("username"); var info = new ConnectionInfo("host.name.com", port, "username", authMethod); using (var client = new SshCli
12 2024-04-26
编程技术问答社区
MySQL和Unity登录
我刚刚通过SSH协议在我的VPS上安装了MySQL,并且我创建了具有所有特权的root帐户.我想出了如何使用MySQL 5.5V通过C#与数据库连接.对于.net 2.0- unity3d可接受的唯一版本.我有几个问题.我不知道使用Root帐户连接到客户端的数据库是正确的,我的意思是类似的东西:Server=***;Database=Users;Uid=root;Pwd=***; 然后键入查询:SELECT * FROM Users where ....我认为它不安全.如何以更安全的方式连接?如果不给C#代码中的根帐户提供密码,也可以创建另一个帐户而没有修改权限? 解决方案 如果该应用程序将在Internet上的任何位置发布,则可以从客户端(Unity)连接到数据库(Unity)不是一个好主意.在您的服务器应使用php,perl,c++或您喜欢的任何语言编码. . 再次,整个数据库连接应在客户端上的服务器上完成. 一个例外是当您的应用程序将仅在您的公司办公室使用时.只要它可
12 2024-04-26
编程技术问答社区
C#-使用ftp通过ssh从一个远程服务器下载文件到另一个服务器
我需要从一台远程服务器下载大文件(20GB+)到C#中的另一台远程服务器.我们已经为其他文件操作建立了SSH连接.我们需要在二进制模式下从SSH会话下载FTP(这是以特定格式交付文件的远程服务器要求).问题 - 如何在SSH会话中发送FTP命令以与凭据建立连接并将模式设置为" bin"?基本上等于使用SSH: FtpWebRequest request =(FtpWebRequest)WebRequest.Create( @"ftp://xxx.xxx.xxx.xxx/someDirectory/someFile"); request.Credentials = new NetworkCredential("username", "password"); request.UseBinary = true; request.Method = WebRequestMethods.Ftp.DownloadFile; FtpWebResponse response =
18 2024-04-25
编程技术问答社区
执行脚本时向bash传递参数
我正在尝试从远程Linux计算机上的Windows执行Bash Shell脚本. 我正在使用c#和脚本活在Windows框上,无法安装在Linux计算机上.我使用'file.readallText(...)'在脚本中读取,该脚本在脚本中以字符串的形式加载.然后使用ssh.net,然后在linux上执行脚本: SshCommand cmd; using (var client = new SshClient(ConnectionInfo)) { client.Connect(); cmd = client.CreateCommand(string.Format("sh -x -s
12 2024-04-25
编程技术问答社区
如何在C#中从AIX topas命令结果中剥离ANSI转义代码
我正在尝试捕获AIX实时信息,例如CPU,内存,IO加载,带有C#控制台应用程序,因为我想在第三部分自定义仪表板中显示该信息. 运行命令TOPA后,我需要定期捕获以下文本: 我试图用我在某个论坛中发现的以下代码捕获它: using Renci.SshNet; using System; using System.IO; using System.Threading; namespace SSH_check_commands { public class MyAsyncInfo { public MyAsyncInfo(Byte[] array, ShellStream stream) { ByteArray = array; Stream = stream; } public Byte[] ByteArray { get; set; } public ShellStream Stream { get;
18 2024-04-25
编程技术问答社区
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通过终端执行相同的
14 2024-04-25
编程技术问答社区
使用Renci.SSH访问MySQL服务器
尝试使用Renci主机SSH库访问MySQL Server. 我通过遵循信息创建一个转发的端口, SSH隧道 具体来说,这条线使我的本地端口成功设置为可以绑定: ForwardedPortLocal port = new ForwardedPortLocal("localhost", 3306, "localhost", 3306)); 这很好,但是据我了解,SSH客户端已绑定到3306,从服务器接收数据.如果用户已经安装了MySQL,这将是一个问题,因为它将使用此端口,因此我的服务不能.当然可以停止服务,但这不是一个非常友好的过程. 我原本希望能够通过我的连接时间来聆听一个高级的端口. 我对我应该通过的参数有些困惑,最初认为第二个端口是我需要绑定到的本地端口.在端口配置进行了广泛的实验之后,我对如何处理它感到茫然. 此外,我尝试了各种过载,但其他3个过载似乎都没有产生我想要的东西. 有什么提示? 谢谢, 安迪 解决方案 好吧,
12 2024-04-25
编程技术问答社区
我怎样才能在c#中建立连接ssh?
这是我在Stackoverflow上的第一篇文章,对不起. 在我的范围上: private SshClient client; private ForwardedPortDynamic port; 我有一个示例代码可以与SSH相似的putty: private void Connect() { try { client = new SshClient("myserverproxy.net", "user", "password"); client.KeepAliveInterval = new TimeSpan(0, 0, 60); client.ConnectionInfo.Timeout = new TimeSpan(0, 0, 20); client.Connect(); port = new Forw
22 2024-04-25
编程技术问答社区
通过SSH隧道的mySQL连接字符串,无需密码
我已经获得了SSH访问运行MySQL的服务器.我的访问是通过我的公钥来验证的,无需进一步的密码. 使用Putty,我能够使用我的私钥将SSH到服务器,直接通过命令行工具登录MySQL数据库,然后直接运行SQL.我希望通过C#服务(通过SSH连接转发端口3306)模拟此内容,不幸的是,所有连接字符串列出了 http://www.connectionstrings.com/mysql/需要一个密码. 到目前为止,我的粗糙和准备代码使用MySql.Data和SSH.NET: PrivateKeyFile file = new PrivateKeyFile(@" [ path to private key ]"); using (var client = new SshClient(" [ server ] ", "ubuntu", file)) { var port = new ForwardedPortLocal(3306, "localhost"
12 2024-04-24
编程技术问答社区
SSH.Net库和通配符的使用
我需要使用SSH.NET登录到SFTP并删除文件夹中的所有文件,但似乎SSH.NET不支持通配符.是真的吗?有办法修复它吗?这是我的代码. using (SftpClient sftpClient = new SftpClient(server, port, username, password)) { foreach (var d in sftpClient.ConnectionInfo.Encryptions.Where(p => p.Key != "blowfish-cbc").ToList()) { sftpClient.ConnectionInfo.Encryptions.Remove(d.Key); } sftpClient.Connect(); sftpClient.DeleteFile("/outgoing/*.*"); sftpClient.Disconnect(); } 解决方案 我也没有使
14 2024-04-24
编程技术问答社区
SSH.NET。是否可以使用SFTP上传文件并保留源文件的日期?
当前,我使用Renci SSH.NET库将文件上传到使用SFTP上的UNIX服务器.我不喜欢的一件事是,在上传文件后,创建和修改的日期已更改为上传的时间. 我想保留原始文件的日期,这是可能的吗? 解决方案 SSH.NET库不会自动为您做.您必须编码. 有SftpClient.SetLastWriteTime和SftpClient.SetLastWriteTimeUtc方法.但是它们实际上尚未实施. 您可以这样做代码: SftpFileAttributes fileAttributes = client.GetAttributes(targetFile); fileAttributes.LastWriteTime = File.GetLastWriteTime(sourceFile); client.SetAttributes(targetFile, fileAttributes); 由于SftpFileAttributes中缺少UTC API,但如果客
16 2024-04-23
编程技术问答社区
在C#中从Windows访问iO文件系统
首先,我尝试使用SSH访问它,但是运行LS命令然后获得输出流需要太多时间,并且还需要安装在设备上的软件包. 有没有其他方法可以从Windows访问USB连接的iOS设备文件系统?我也阅读了有关Xamarin的信息,但是我可以看到,这仅适用于为iOS开发应用程序. 编辑:可能的重复问题部分解决了我的答案,但是我需要为Windows找到编译版本(请参见下面的注释). 解决方案 我们的公司对此遇到了很多麻烦;首先,我们找不到任何可用的c#/.网库来执行此操作.我们最终使用外部库呼叫编写了自己的库,但是它存在许多稳定性问题,我们放弃了.最终,我们找到了一个提供了一个很好的代码库的库:文档很少,但是该代码是不言自明的.该图书馆提供了许多用于访问USB电缆的IDEVICE的功能,并且项目维护人员指出,网络功能可能在可预见的将来可用. 我们将这个出色的开源库纳入了我们的许多应用程序,实现非常简单:您注册了一个设备插入/插入设备时发射的事件,您可以在这些事件上调用代码. 功能
14 2024-04-23
编程技术问答社区
System.Diaganostics.Process(当一个进程内部使用另一个进程时)。
我一直在使用C#System.Diagnostics.Process监视命令行实用程序的输出. 我正在"内部"监视的过程启动了第二个过程,并且一旦完成,我就不会从流程对象中获得进一步的输出. 令人沮丧的是,如果您使用cmd.exe(手动)执行非常相同的命令(我是使用System.diarostics.process对象启动的命令(手动),则控制台输出我需要在我的中看到的每一行C#应用! 但是,如果i(用于测试目的)使用system.diarostics.process对象启动cmd.exe,并运行命令,它仍然停止在以前使用的同时输出(直接启动Process1.exe);在该点,第二次使用.我认为该测试将巩固所涉及的所有过程的所有输出,但事实并非如此.如何将所有这些输出输入我的C#应用​​程序? 解决方案 的原因是,System.Diagnostics.Process实际上仅监视其挂钩的过程. 避免此问题的一种方法是您在启动第二个应用程序时的第一个输出应用程
16 2024-04-23
编程技术问答社区
通过C#中的SSH.NET隧道连接到MySQL数据库时,"无法连接到指定的MySQL主机"
我正在尝试使用C#和ssh.net在Ubuntu上连接一个MySQL DB. 我们的MySQL DB仅允许从Web服务器的连接,并从下面的代码中看到的内容,客户端对象连接到Web服务器,然后我打开一个端口以在DB服务器上映射到3306.最后,MySQLConnection对象打开了与MySQL db的连接. 但是,我在sql.Open()语句中有例外: 无法连接到指定的MySQL主机 我已经检查了同一主题的其他线程,并尝试了他们的建议,但它们似乎没有帮助我. 以及更多. 这是我正在使用的一些测试代码 - var ci = new ConnectionInfo( "server", "userid", new PasswordAuthenticationMethod("userid", "userpwd")); using (var client = new SshClient(ci)) { client.Con
26 2024-04-23
编程技术问答社区
如何使用SharpSSH来执行提示输入的Linux命令?
正好我想做的事 我必须将SSH会话设置为Linux计算机,并发出诸如" LS"或CP的命令. Heres片段 SshStream ssh = new SshStream ("myhost","root","pass"); ssh.Prompt ="#"; ssh.RemoveTerminalEmulationCharacters = true; byte[] byt = System.Text.Encoding.ASCII.GetBytes("rm vivek"); Array.Resize (ref byt,byt.Length +3 ); byt[byt.Length-1]=(byte)'\r'; byt[byt.Length - 2] = (byte)'y'; byt[by
12 2024-04-23
编程技术问答社区
SshNet命令的执行
我正在尝试使用C#创建SSH客户端.我正在使用Renci.sshnet库.我遇到了发送命令并从服务器获得适当响应的问题. 我一直在测试它是通过发送LS命令的方式,然后是CD ..命令,然后再次进行LS命令 - 查看CD ..命令是否正确执行.但是,第一个LS命令和第二个LS命令之间没有区别.我不确定我在做什么错.也许我正在使用错误的SSH类型.我提供了代码和输出.我还添加了我期望的输出. SshClient ssh = new SshClient("apk0rhel01", "dwaseem", "Da_011235813"); ssh.Connect(); while (true) { string command = Console.ReadLine(); if (command == "exit") {
16 2024-04-23
编程技术问答社区
C# SSH隧道到MySQL服务器
我正在尝试编写一个简单的程序来连接到只能通过SSH连接到的MySQL远程服务器. 它报告了SSH连接,并且端口向前移动,但随后声明它不能连接到指定的主机? 我是否配置了这个错误? 以下是控制台输出和代码: using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.IO; using System.Data; using System.Web; using System.Windows.Forms; //Add MySql Library using MySql.Data.Entity; using MySql.Data.MySqlClient; using MySql.Data.Types; // SSH using Renci.SshNet; using Renci.SshNet.Common; names
8 2024-04-23
编程技术问答社区
在C#中打开命令行并发送命令 PuTTY或KiTTY
我想从GUI中从C#打开命令行,然后发送此行: kitty.exe abc@192.19.35.80 -load file -l name -pass pswrd -cmd "echo 123" 这实际上是要打开小猫(这是腻子的端口),然后将命令echo 123(只是一个示例)发送到SSH. 我找不到任何方法在C#中. 解决方案 System.Diagnostics.Process cmd = new System.Diagnostics.Process(); cmd.StartInfo.FileName = @"C:\windows\system32\cmd.exe"; cmd.StartInfo.UseShellExecute = false; cmd.StartInfo.RedirectStandardInput = true; cmd.StartInfo.RedirectStandardOutput = true; cmd.StartInfo.Creat
10 2024-04-23
编程技术问答社区
在C#中使用WinSCP .NET程序集下载文件时,SSH主机密钥指纹......不符合模式。
我正在编写C#应用程序(如果我能得到此功能,最终想创建Windows服务)使用SCP从服务器下载文件(我仅限于SCP作为唯一的选择).我正在使用winscp .net组件(v 5.15.3). 我在我的PC和服务器之间有一个SSH隧道,因此以下从命令行的工作: ssh user:server 在代码中设置SshHostKeyFingerprint时,我会遇到问题. WinSCP.SessionOptions options = new WinSCP.SessionOptions(); options.HostName = "ip address"; options.Password = "password"; options.PortNumber = 22; options.UserName = "username"; options.Protocol = WinSCP.Protocol.Scp; options.SshHostKeyFingerprint = "
10 2024-04-23
编程技术问答社区
Renci ssh.net-连接时从表单中创建控制台屏幕
我想创建(我认为它是一个控制台)屏幕以输入,并在Renci ssh.net Connect(或期间)之后查看输出. 我目前有一个form1,可以收集连接信息,然后按下按钮以通过BackgroundWorker1连接. 我想我需要一个Form2和BackownWorker2来保持屏幕实时,但我不确定. 我可以创建form2,但不确定如何使输入和输出实时连接,到目前为止,一切都可以. 通常,您如何创建输入/输出屏幕. 如果我至少有一个起点,我认为我可以从那里去. 解决方案 public string inputTo; public string outputFrom; public string Server { get; set; } public string Username { get; set; } public string Password { get; set; } public static S
16 2024-04-23
编程技术问答社区