使用Apache SSHD发送SSH shell命令

时间:2013-06-07 15:21:02

标签: java apache ssh sshd

我正在尝试使用Apache SSHD library将命令发送到SSH shell。我读过JavaDoc;但它太稀疏了,我无法理解如何使用该库。

对不起,我无法链接到JavaDoc,但它似乎无法在网上获得。我能够使用System.in,System.out和System.err流设置发送命令和读取结果的测试。该项目的最终目标是将shell发送到shell,处理结果,发送另一个字符串,处理结果等,同时保持在同一个shell中。我知道我可以打开多个ChannelExecs;但这会产生多个渠道。

基本上,我希望我的程序能够与shell进行交互。

2 个答案:

答案 0 :(得分:0)

如果你想要一个完全自定义和受控制的shell,那么你可以编写自己的org.apache.sshd.server.Command类和run()方法的实现,调用java.lang.Process来执行你自己的shell / DOS脚本并通过Command类的输入和输出流将结果返回给调用程序。

如果调用程序可以执行正常的shell命令,如dir / mkdir / touch等,那么可以使用org.apache.sshd.server.shell.InvertedShell类。 Apache SSHD包中有一个测试类InvertedShellWrapperTest.java,可以为您提供一个良好的开端。

答案 1 :(得分:0)

https://mina.apache.org/sshd-project/tips.html

我必须稍微修改他们的代码片段,这对我有用:

import re
if re.compile('xyz').search(given_text):
    print 'found'