gpt4 book ai didi

android - 将 ConnectBot 与 Intents 结合使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:04 28 4
gpt4 key购买 nike

有什么方法可以通过 Intent 访问 ConnectBot 功能吗?我想从我的应用程序中启动一个 ssh session 并通过私钥/公钥进行身份验证,然后关闭 session 。 ConnectBot 有可能吗?如果可以,我该如何调用 Intents?可悲的是,我没有找到关于这个主题的任何文档:(

最佳答案

这个问题的答案取决于您希望将 ssh session 用于什么目的:它是程序化的,还是您是否希望向用户显示一个终端 session 或控制台,让他们可以在其中输入内容任意命令?从研究 ConnectBot manifest 可以看出,第二个选项在大多数情况下很容易得到支持。 - 应用程序有一个为匹配此模式的 ConsoleActivity 注册的 intent 过滤器:

  • action : android.intent.action.VIEW
  • uri : ssh://user@host:port/#nickname

...之后它不会关闭 session ,但除此之外,它执行您指定的所有操作,使用 ConnectBot 自己的连接基础设施,并使用用户拥有的任何 SSH key 在 ConnectBot 应用程序中注册。

或者,您可能会谈论前一种选择:让您的应用程序以编程方式对 SSH 服务器执行某些特定命令

ConnectBot 的官方版本目前不以任何方式支持它。根据您的要求,您可能会想象您只需使用服务器地址和您希望它执行的命令来触发 ConnectBot 的 Intent ;这对 ConnectBot 来说实现起来并不难,而且它会让您免于学习太多关于 ssh 协议(protocol)的麻烦。但是,此 Intent 并不存在,如果它存在将非常危险,手机上的任何应用程序都可以使用它在远程服务器上使用用户凭据执行任意代码。

存在的是我几个月前在 ConnectBot 的补丁版本中创建的这个 Intent ,以支持 Agit ,适用于 Android 的 Git 客户端:

org.openintents.ssh.BIND_SSH_AGENT_SERVICE

ConnectBot 的这个补丁版本允许 ConnectBot 像 ssh 代理一样工作 - 您的 应用程序负责管理 ssh 连接,但您可以调用 ConnectBot 以获取必要的凭据 - ConnectBot 将让您知道它有哪些公钥可用于连接,并将签署身份验证所需的数字挑战。 details of the protocol are on OpenIntents.org ,但基本上您使用 Intent 绑定(bind)到 ConnectBot,获取提供 ssh-agent 功能的 AIDL 接口(interface):

org.openintents.ssh.BIND_SSH_AGENT_SERVICE

作为安全预防措施,您的应用需要声明它使用此权限,否则将无法绑定(bind)到该服务:

org.openintents.ssh.permission.ACCESS_SSH_AGENT

ConnectBot 的补丁版本可以从 Android Market 下载:

https://market.android.com/details?id=com.madgag.ssh.agent

补丁的源代码在这里:

http://code.google.com/r/robertotyley-connectbot-ssh-agent/source/list?name=ssh-agent

虽然这会处理公钥/私钥管理,但实际上您仍然需要在应用程序中实现 ssh 连接。我推荐 sshj ssh 协议(protocol)支持库,请参阅他们的简单“命令”连接示例:

https://github.com/shikhar/sshj/blob/v0.6.1/src/main/java/examples/Exec.java

Bouncy CaSTLe 加密库通常在 Java 中用于提供加密算法,但是 Android 提供的版本是残缺的并且不容易被覆盖 - 因此您应该使用 Spongy CaSTLe 库来对 BC 库进行 Android 友好的重新打包:

https://github.com/rtyley/spongycastle

关于android - 将 ConnectBot 与 Intents 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315011/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com