SSH客户端Delphi开源库或组件,或替代方案

13

我需要我的Delphi应用程序发出非常简单的命令,例如

ssh -l userid host.domain.com "df -h"

userid@host.domain.com's password: XXXXX

Filesystem            Size  Used Avail Use% Mounted on
/dev/sdd5             4.9G  1.7G  3.0G  36% /
/dev/sdc1             1.1G   75M  952M   8% /boot
/dev/sdd2             2.0G   44M  1.8G   3% /var/log

你能推荐一些免费组件或库吗?我已经在Tory的页面和谷歌上搜索了一下,但是没有找到任何内容。

如果有其他替代方案也可以考虑。


仅供参考,MobaXterm是用Delphi编写的SSH和Xserver客户端。一些源代码是开放的。没有检查它们的完整性或许可证 https://mobaxterm.mobatek.net/license.html - Arioch 'The
1个回答

14
您可以安装Cygwin的OpenSSH客户端,然后从应用程序中调用它并捕获其输出。
以下是如何捕获控制台输出的示例: http://delphi.about.com/cs/adptips2001/a/bltip0201_2.htm 请记住,在登录SSH服务器时,会请求输入密码,以交互模式(SSH客户端将等待您输入密码),因此您必须配置自动登录,就像这里所解释的那样: http://magicmonster.com/kb/net/ssh/auto_login.html 一个稍微复杂一点的解决方案是使用Synapse Lib通过SSL连接到服务器,就像这个例子: http://www.amsoftwaredesign.com/downloads/synapse_ssh_test.zip 我在我的博客上发布了一篇文章,提供了一个简单的类来实现您想要的功能: http://leonardorame.blogspot.com/2010/01/synapse-based-ssh-client.html 希望这可以帮助到您。

1
+1 for Synapse,这正是我推荐的,它是一个更干净的解决方案...虽然它需要第三方DLL(用于SSL实现),但不需要安装第三方软件。 - skamradt
+1 对于你的博客文章,我已经寻找了很长时间!!谢谢! - migajek
+1 - 我关注了你的博客文章,它在D2007中非常有效,正是我需要的正确方向推动我前进。谢谢! - robsoft
谢谢Leonardo,我已经在FreePascal中使用了Synapse解决方案。一个澄清:SSH不使用SSL协议,但是使用Cryptlib的Synapse可以提供SSH协议。 - reiniero
@reiniero,你能帮我使用Synaps吗? - saharghodsbin
SSL和SSH是完全不同的协议。除非Synapse也支持SSH,否则它将毫无用处。 - Carlo Kok

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接