.net 如何从Windows执行Unix shell脚本

.net 如何从Windows执行Unix shell脚本,.net,windows,unix,shell,cross-platform,.net,Windows,Unix,Shell,Cross Platform,我想从.NET应用程序运行一个AIX脚本。我不反对启动Windows批处理文件,如果这给了我更好的选择 我在谷歌上看到的大部分内容都与使用诸如rsh或Plink之类的工具有关,或者与使用ssh或telnet有关。我没有rsh或Plink(尽管我有油灰,可能会得到Plink)。我可以ssh到AIX框,但telnet被禁用 我需要一种传递用户凭据的方法 有谁能推荐从Windows应用程序调用Unix脚本的最佳方法吗?安装cygwin。包括ssh函数。设置ssh密钥—windows上的私钥,AIX上的

我想从.NET应用程序运行一个AIX脚本。我不反对启动Windows批处理文件,如果这给了我更好的选择

我在谷歌上看到的大部分内容都与使用诸如rsh或Plink之类的工具有关,或者与使用ssh或telnet有关。我没有rsh或Plink(尽管我有油灰,可能会得到Plink)。我可以ssh到AIX框,但telnet被禁用

我需要一种传递用户凭据的方法


有谁能推荐从Windows应用程序调用Unix脚本的最佳方法吗?

安装cygwin。包括ssh函数。设置ssh密钥—windows上的私钥,AIX上的公钥。然后可以运行“ssh”user@aixboxaix box.sh上的脚本”

最好在AIX上使用脚本,不过可以先使用scp将文件复制到AIX。通过ssh传递长的命令行很容易出错—不是因为它是ssh,而是因为正确设置转义以通过ssh从.NET传递到ksh或AIX上运行的任何东西都很痛苦。最好让事情尽可能简单,最好是一个命令,然后可以是一个脚本,可以做多种事情

要回答您的评论,另一条评论可能需要很长时间:

(1) 为什么使用cygwin的ssh实用程序而不是Windows ssh实用程序更好

a) 我更了解它,所以我不知道建议使用任何windows ssh实用程序(我甚至不知道windows附带了ssh实用程序),而且b)cygwin的ssh实用程序更有可能成为标准ssh,拥有我们unix怪胎所喜爱的熟悉度。:-)

(2) 钥匙是干什么用的?这是允许跨平台身份验证,还是只是对密码进行不对称加密的一种方式


这些密钥允许无密码访问。如果您将私钥设置为无密码(通常不建议使用,但如果您能够保证机器的安全,它对自动化工具非常有效),您的工具将能够在没有密码提示的情况下通过ssh进行连接,这将使事情变得更简单。

ssheximadmin@172.16.12.10“cat somefile.log”

(其中cat somefile.log被替换为要运行的命令)


我认为最简单的方法是从.net应用程序调用的批处理文件中调用您的ssh程序(无论是ssh、plink还是其他)。我支持cygwin的建议,但您还有一个选择是Microsoft的。

我要做的是设置服务(https).Net应用程序可以运行的AIX框上的接口。这实际上是一个如何在AIX盒上公开脚本的问题。imhojava+Tomcat很容易在AIX盒上安装,只需确保限制暴露,和/或需要AIX服务的身份验证票证。这与其说是一个.Net问题,不如说是一个架构决策

--编辑--


正如其他人所建议的,您也可以使用Cygwin。您还可以使用.Net的SSH组件,这对您来说可能更透明。(和)

谢谢你的回答。两个相关的问题:(1)为什么使用cygwin的ssh实用程序而不是Windows ssh实用程序更好?(2) 钥匙是干什么用的?这是允许跨平台身份验证,还是只是对密码进行非对称加密的一种方式?事实上,我不认为它内置于Windows中(我的假设是错误的)。我认为这是我们安装的第三方实用程序。如果我遇到ssh问题,我会尝试cygwin。再次感谢。我也喜欢AIX服务建议。