带有SSH的Apache Felix shell

Pet*_*zov 7 java osgi apache-felix gogo-shell

我对如何使用Apache Felix和SSH感兴趣?我想使用SSH从远程计算机访问Felix shell.我知道有一个telnet支持,但它太不安全了.有什么解决方案吗?

Umb*_*ndi 4

是的,有一个,如这里所述(该指南是相对于 Eclipse 的春分点,但这并不重要),使用gogo shellapache mina sshd服务器和三个春分控制台捆绑包(用于 ssh 的 core+ssh 插件+jaas 插件)的组合身份验证)您将能够连接到 mina 的 ssh 服务器,并且与 OSGi 相关的命令将由 gogo shell 执行。

您将需要这些捆绑包:

  • GoGo外壳:org.apache.felix.gogo.command.jar,org.apache.felix.gogo.runtime.jar,org.apache.felix.gogo.shell.jar
  • Equinox 控制台捆绑包:org.eclipse.equinox.console.jar、org.eclipse.equinox.console.supportability.jar、org.eclipse.equinox.console.jaas.fragment.jar
  • 阿帕奇米娜:org.apache.mina.core.jar,org.apache.sshd.core.jar
  • 用于记录 slf4j-api.jar 和 slf4j-api_impl.jar

如此处所述,您的 Felix 配置文件中还需要这些属性:

osgi.console.enable.builtin=false 
osgi.console.ssh=<port> 
osgi.console.ssh.useDefaultSecureStorage=true 
Run Code Online (Sandbox Code Playgroud)

Equinox JAAS 包将搜索一个org.eclipse.equinox.console.authentication.config文件,该文件将启用登录模块:

equinox_console { 
    org.eclipse.equinox.console.jaas.SecureStorageLoginModule REQUIRED; 
}; 
Run Code Online (Sandbox Code Playgroud)

我不太确定将使用 Felix 在哪里搜索它(我不确定这是以标准 OSGi 方式完成的),但目录conf是一个很好的猜测。

用户 equinox/equinox 已经存在,可以使用提供的控制台命令创建其他用户。

编辑:对于 equinox 控制台/支持包,您可以 从此处扩展“附加包”部分获取 Mars 版本:

org.eclipse.equinox.console_1.1.100.v20141023-1406.jar

您还需要从此处获取支持包(最新版本是 2011 年)。