CMD.exe C#模拟器?

时间:2010-01-15 18:38:42

标签: c# automation batch-file cmd

我一直在努力自动ssh到Linux服务器。什么是疯了,是我可以创建一个.bat脚本,它会做,但我必须在那里,输入密码。

我已尝试使用c#中的System.Diagnostics.Process对象自动执行此操作。我发现,没有办法让这个对象允许你看到密码提示。它将每一行放到那一点,然后不再输出任何行。

cmd.exe,非常适合允许您在脚本中从进程跳转到进程;它将所有内容整合到一个屏幕中,只是提示您输入密码等内容,然后输入密码。

在C#中是否有任何简单方法使cmd.exe认为你是一个人在输入它,所以我可以通过编程模拟这个?否则,System.Diagnostics.Process似乎没有提供与输出密码提示的进程交互的方法。当你在cmd.exe中运行相同的东西时,你永远不会看到明显发生的提示

4 个答案:

答案 0 :(得分:2)

cmd.exe不是SSH客户端;它只是一个壳。探索实际客户的功能。在PuTTY(非常受欢迎!)中,如果您有SSH密钥,则会有自动登录功能。

答案 1 :(得分:1)

您可以使用

Windows.Forms.SendKeys()  发送密码作为击键

Reference Material

答案 2 :(得分:1)

在不知道您使用哪个命令行工具ssh到服务器的情况下,没有提供密码的命令行参数。

C:\> ssh user@ip -p password

或者您尝试过输入重定向:

ssh user@ip <
Yourpassword
EOF

在查看earlier问题时,您在使用程序员界面时遇到了什么麻烦?

您确定需要一个完整的ssh客户端,还是只想远程执行命令?如果是后者,您可能需要查看plink

答案 3 :(得分:0)

plink.exe -ssh user @ host -2 -i user.ppk -m command_line.txt

如何创建ppk文件:http://theillustratednetwork.mvps.org/Ssh/Private-publicKey.html