我可以想到两种方法来实现这个目标:
在系统上安装像Putty这样的程序,并使用Putty对服务器(应用程序外部)进行SSH调用,并以这种方式发送命令.这将需要您的应用程序的一些提升权限,因为它将必须直接访问系统.在我看来,这是"丑陋"的方式.
找一个VB SSH库.我找到了这个,但必须有更多.这将允许您创建到Unix框的SSH连接并传递您要运行的命令.这将是"最好的"方式.
编辑:
CSHARP并不重要.您可以下载Visual C#2010 Express并打开Renci.SshNet并构建它.一旦它构建完成,你就会获得一个dll,然后你可以添加它作为VB项目的参考.有点痛苦,但使用Express版本需要付出很小的代价.:)
这是使用构建运行在Visual C#2010 Express中打开的ssh库的屏幕截图.您可以在左下方看到"构建成功":
一旦将其作为参考,您就可以使用该库与服务器建立ssh连接并运行命令.这是一些示例代码.我创建了一个VB Web应用程序,添加了dll作为参考,并将一个click事件添加到一个按钮,将结果吐出到标签控件中:
Protected Sub btnSSHTest_Click(sender As Object, e As EventArgs) Handles btnSSHTest.Click
'Create the objects needed to make the connection'
Dim connInfo As New Renci.SshNet.PasswordConnectionInfo("hostname", "username", "password")
Dim sshClient As New Renci.SshNet.SshClient(connInfo)
'Need to hold the command'
Dim cmd As Renci.SshNet.SshCommand
Using sshClient
'connect to the server'
sshClient.Connect()
'Run the command and put the results into the cmd object. In this case'
'I am just running a directory list'
cmd = sshClient.RunCommand("ls -lthr")
'my web page had a label control on it. I placed the results of the cmd into'
'the label'
lblResult.Text = cmd.Result
'Close the connection.'
sshClient.Disconnect()
End Using
End Sub
Run Code Online (Sandbox Code Playgroud)
编辑:
为了确保它在非Web应用程序中工作,我在使用Vb 2010 express创建的Windows窗体应用程序中做了示例.我在表单中添加了一个按钮和一个标签,并将上面的代码添加到按钮单击事件中.然后我添加了对我从C#2010 Express创建的DLL(库)的引用.
这是添加引用的屏幕截图:
以下是项目属性的屏幕截图,显示已添加引用:
接下来,我运行项目并单击按钮.建立了与unix盒的连接,并将命令的结果(在本例中为'ls -lthr')放在标签中.我以root身份登录(不推荐)并从/ root /目录运行命令.这就是为什么那里没有多少.
归档时间: |
|
查看次数: |
26547 次 |
最近记录: |