Tag: ssh

连接到OpenShift(Redhat Paas)的mysql实例

我正在尝试将我的c#应用程序与openshift数据库连接起来。 但是我在conn.Open()上得到了这个例外 Eccezione => MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts. in MySql.Data.MySqlClient.NativeDriver.Open() in MySql.Data.MySqlClient.Driver.Open() in MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) in MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() in MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() in MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() in MySql.Data.MySqlClient.MySqlPool.GetConnection() in MySql.Data.MySqlClient.MySqlConnection.Open() 这是我的方法: public void connect() { string connStr = @”Server=test-lound.rhcloud.com;Port=3306;Database=test;Uid=XXXX;Pwd=YYYY;”; MySqlConnection conn = new MySqlConnection(connStr); try { Console.WriteLine(“Connecting to MySQL…”); conn.Open(); Console.WriteLine(“Connection successfull […]

在C#中如何使用TcpClient在远程SSH上运行unix命令

我试图从我的C#应用​​程序在远程主机上运行UNIX命令。 我已经看到各种各样的post,包括SO,使用各种库,如SmartSsh,以及其他许多人。 还有一些人使用命令行命令。 我不想使用任何第三方库。 因此,我尝试使用TcpClient类,其示例显示在MSDN上 。 我传递的主机名为: user @ servername和port 22 。 当我运行此代码时,它会产生exception SocketException (0x80004005): No such host is known at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port) 是因为我的服务器/主机需要用户密码,如果是,那么我该如何提供呢?

是否可以使用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 […]

C#windows 10 app中的ssh连接

我一直在寻找能够帮助我解决这个问题的2天。 我需要一种从Windows 10 Universal应用程序连接到ssh服务器的方法。 这意味着普通的ssh库不起作用,并且tcpclient不存在。 我怎样才能做到这一点? 提前致谢。

在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 […]

S#SSH .Net库中的Sudo命令

这是我能找到的SSH .Net库最简单的sudo实现。 但是,我无法让它发挥作用。 using (var ssh = new SshClient(“hostname”, “username”, “password”)) { ssh.Connect(); var input = new MemoryStream(); var sr = new StreamWriter(input); var output = Console.OpenStandardOutput(); var shell = ssh.CreateShell(input, output, output); shell.Stopped += delegate { Console.WriteLine(“\nDisconnected…”); }; shell.Start(); sr.WriteLine(“sudo ls”); sr.Flush(); Thread.Sleep(1000 * 1); sr.WriteLine(“password”); sr.Flush(); Thread.Sleep(1000 * 100); shell.Stop(); } 我每次都会收到以下错误 上次登录时间:2015年1月14日星期三15:51:46来自mycomputer […]

PowerShell,读写/写入SSH.NET流

我想通过SSH连接到服务器,使用PowerShell, 然后更改为其他用户 。 为了通过SSH实现与PowerShell的服务器连接,我使用SSH.NET库中的 SSH和如何通过SSH连接 PowerShell来使用 SSH 。 这很棒,并为我提供了简单的命令行开关,例如new-sshsession和invoke- sshcommand 。 接下来,我想su给不同的用户。 当我尝试通过命令行开关这样做时,我得到了错误: 标准必须是tty 。 我知道我可以编辑服务器上的安全设置,让我在没有处于交互模式的情况下使用su 。 但是,我无法在我想要连接的所有服务器上更改该设置。 使用我在https://sshnet.codeplex.com/discussions/285853上找到的C#示例,我把它放在一起: $server = “server1” $port = 22 $username = “user1” $password = “password1” $ssh = new-object Renci.SshNet.SshClient($server, $port, $username, $password) $ssh.Connect() $inputstream = new-object System.IO.MemoryStream $streamwriter = new-object System.IO.StreamWriter($inputstream) $outputstream = new-object System.IO.MemoryStream $streamreader = new-object System.IO.StreamReader($outputstream) […]

使用SSH.NET库从.NET连接到MySQL

我正在开发一个网页(ASP.NET / C#),它通过SSH在远程服务器上查询(MySQL)数据库。 我正在使用这两个库(mysql-connector-net-6.9.7)和(Renci.SshNet.dll)。 我可以通过SSH连接在远程服务器上使用MySQL Workbench访问MySQL数据库: “ portal.RemoteServer.edu:22 ”使用“ RemoteServerUsername ”和 “ RemoteServerPassword ”。 这是我的C#代码,它不会从远程服务器上的Clients表返回任何数据: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Configuration; using MySql.Data.MySqlClient; using Renci.SshNet; using Renci.SshNet.Common; namespace WebApplication1 { public partial class About : Page { protected void Page_Load(object sender, EventArgs e) { MySqlConnection […]

C#:重定向已经运行的进程的标准输出

我一直很难获得“子流程”的输出(一个由我通过c#System.Diagnostics.Process监控的黑盒流程内部启动) 我接受了上一篇文章的回答: 这里 。 在那里你可以找到我经历过的细节。 此时,虽然我能够找到由process1.exe生成的ssh进程,但我正在监视。 我无法将输出重定向到我的c#程序,因为它是一个“已在运行的进程”,并且不是直接从C#启动的。 看来,您在System.Diagnostics.Process对象上设置的所有属性只有在从c#应用程序显式启动该进程时才会生效; 如果某个其他“非托管进程”已启动该进程,则设置此重定向无效,因为该进程已由未指定我需要的重定向的内容启动。 有没有办法重定向已经启动的进程的输出(由程序启动的进程,我没有在启动此进程之前预先指定重定向的范围)?

如何在WPF中模拟控制台?

我想要一些正确的方向,甚至是解决这个问题的方法,而且我很困难(我只是初学者/中级): 我正在尝试在我的应用程序中实现SSH。 SSH后端工作正常等,但我被困在前端。 WPF-Combination会给我一个足够的模拟控制台的解决方案吗? 抛开一个完整的终端仿真,我很乐意将readline / writeline简单地写成一个看起来像控制台的东西:-) 我最好的方法是80×50的单个字符网格,导致4000个单细胞,感觉就像一个完全矫枉过正。 另一个想法是制作一个控制台-Appl。 绑定到另一个项目中的wpf窗口。 但是……这是可能的,怎么样?