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

标签 .net windows unix shell cross-platform

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

我在 Google 上看到的大部分内容都与使用 rsh 或 Plink 等工具,或使用 ssh 或 telnet 相关。我无权访问 rsh 或 Plink(尽管我有 PuTTY 并且可能获得 Plink)。我可以通过 ssh 连接到 AIX 机器,但 telnet 被禁用。

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

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

最佳答案

安装 cygwin。包括 ssh 功能。设置您的 ssh key - Windows 上的私钥,AIX 机器上的公钥。然后你可以运行“ssh user@aixbox script-on-aix-box.sh”。

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

要回答您的评论,这对于另一条评论来说会花费太长时间:

(1) 为什么使用 cygwin 的 ssh 实用程序比 Windows 的 ssh 实用程序更好?

a) 我更了解它,所以我不知道推荐任何 Windows ssh 实用程序(我什至不知道 Windows 带有 ssh 实用程序),并且 b) cygwin 的 ssh 实用程序更有可能成为标准ssh 与我们 unix 怪胎所爱的所有熟悉。 :-)

(2) 按键有什么用?这是否允许跨平台身份验证,或者它只是一种非对称加密密码的方式?

key 允许无密码访问。如果您将您的私钥设置为无密码(通常不推荐,但如果您可以保证您的机器安全,它适用于自动化工具),您的工具将能够在没有密码提示的情况下直接通过 ssh - 这使事情变得容易得多.

关于.net - 如何从 Windows 执行 Unix shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/772935/

相关文章:

c++ - 编写我自己的 shell : How implement command history?

c# - 动画基础数学

c# - WebConfigurationManager 和 ConfigurationManager 有什么区别?

c++ - 即使使用系统服务中的 RegOpenCurrentUser 也无法获取用户级注册表值

Windows cmd git bash : conda. sh 没有这样的文件或目录(Windows 行结尾,缺少斜杠)

c - UNIX 域套接字导致输出延迟

c++ - ASIO 库 - 未调用处理程序

c# - 如何将 JSON 中的键值对更改为 XML 属性而不是节点

c# - 使用 PLINQ 对线程数的内存使用限制

windows - 如果在多行替换中死亡,Perl 会报告错误的行号。这是预期的还是错误?