¿Hay alguna forma de acceder a la funcionalidad de ConnectBot a través de intents? Quiero iniciar una sesión ssh desde mi aplicación y autenticar a través de Clave privada/pública, y luego cerrar la sesión. ¿Es esto posible con ConnectBot y, en caso afirmativo, cómo puedo llamar a los Intents? Lamentablemente, no he encontrado ninguna documentación sobre este tema :(Uso de ConnectBot con Intenciones
Respuesta
La respuesta a esta pregunta depende de lo que se quiere utilizar la sesión ssh para: ¿es algo programático, o qué quiere mostrar al usuario ¿una sesión de terminal o consola donde pueden escribir comandos arbitrarios? Esa segunda opción es en su mayoría bastante fácil de admitir, como se puede ver al estudiar ConnectBot manifest - la aplicación tiene un filtro de intención registrado para el ConsoleActivity
que coincida con este patrón:
- acción:
android.intent.action.VIEW
- uri:
ssh://[email protected]:port/#nickname
... no se cerrará la sesión de tarde, pero aparte de eso, se hacer todo lo que ha especificado, utilizando la propia infraestructura de ConnectBot para la conexión, y el empleo de cualquiera Claves SSH que el usuario ha registrado en la aplicación ConnectBot.
Alternativamente, que podría estar hablando de la primera opción: para su aplicación a ejecutar algún comando en particular en un servidor SSH de manera programática.
Esto no es actualmente compatible con la versión oficial de ConnectBot. Dependiendo de sus requisitos, puede imaginarse que lanzaría un intento a ConnectBot con la dirección de un servidor y un comando que desea ejecutar; eso no sería demasiado difícil de implementar para ConnectBot y le ahorraría el dolor de cabeza de aprender demasiado sobre el protocolo ssh. Sin embargo, este intento no existe, y si fuera lo hizo sería muy peligroso, cualquier aplicación en el teléfono podría usarlo para ejecutar código arbitrario con las credenciales de los usuarios en servidores remotos.
Lo hace existe es esta intención he creado en una versión parcheada de ConnectBot hace unos meses para apoyar Agit, el cliente Git para Android:
org.openintents.ssh.BIND_SSH_AGENT_SERVICE
Esta versión parcheada de ConnectBot permite ConnectBot para actuar como un agente ssh-su aplicación es responsable de administrar la conexión ssh, pero puede llamar a ConnectBot para obtener las credenciales necesarias: ConnectBot le informará qué claves públicas tiene disponibles para la conexión y lo hará. firmar el challe digital requisitos necesarios para la autenticación.El details of the protocol are on OpenIntents.org, pero básicamente se utiliza la intención de unirse a ConnectBot, obteniendo una interfaz AIDL que proporciona la funcionalidad de ssh-agent:
org.openintents.ssh.BIND_SSH_AGENT_SERVICE
Como medida de seguridad, su aplicación tendrá que declarar que utiliza esta permiso, o no será capaz de unirse al servicio:
org.openintents.ssh.permission.ACCESS_SSH_AGENT
la versión parcheada de ConnectBot puede ser descargado fuera del Android Market aquí:
https://market.android.com/details?id=com.madgag.ssh.agent
El código fuente para el parche está aquí:
http://code.google.com/r/robertotyley-connectbot-ssh-agent/source/list?name=ssh-agent
pesar de que este se encarga de la gestión de claves pública/privada, todavía te deja con tener que poner en práctica la conexión ssh dentro de tu aplicación Me gustaría recomendar la biblioteca sshj para la compatibilidad con el protocolo SSH, veo su ejemplo de un simple 'comando' de conexión:
https://github.com/shikhar/sshj/blob/v0.6.1/src/main/java/examples/Exec.java
Las librerías criptográficas castillo hinchable que normalmente se utilizan en Java para proporcionar algoritmos de cifrado, sin embargo la versión provisto con Android se ve mermada y no fácilmente anulado - en consecuencia, se debe utilizar las librerias Castillo esponjoso para un reenvasado en Android amistosa de las librerías BC:
- 1. Creando Intenciones con putExtra
- 2. Acuerdo de Android con muchas intenciones
- 3. orientación Android - problemas con las intenciones (cámara)
- 4. Repositorio de intenciones de Android
- 5. Servicio de intenciones que nunca se llama
- 6. Obteniendo múltiples transmisiones desde intenciones?
- 7. Filtro de intenciones: intent.getData() devuelve nulo
- 8. Filtro de intención para capturar todas las intenciones de uso compartido
- 9. Acciones personalizadas usando intenciones implícitas entre aplicaciones
- 10. Resolución de intenciones y diferencia entre ACTION_CHOOSER y ACTION_PICK_ACTIVITY
- 11. ¿Dónde hay una lista de intenciones disponibles en Android?
- 12. ¿Cómo puedo desencadenar los eventos de intenciones de Twitter programáticamente?
- 13. FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY no está ajustada para las intenciones de la historia
- 14. No se pueden recibir transmisiones para intenciones de PAQUETE
- 15. ANR en la actividad para la transmisión de las Intenciones
- 16. No obtengo las intenciones relacionadas con la tarjeta SD en mi receptor de difusión
- 17. Dos botones de widgets Android llamando a la misma actividad con diferentes intenciones
- 18. Cómo proceder con la tarea de PNL para reconocer intenciones y ranuras
- 19. Android: ¿Cómo transmitir intenciones desde el código nativo?
- 20. Android Intenciones NFC no están comenzando mi actividad
- 21. Establecer una alarma (como en el despertador) usando las intenciones
- 22. Android usando intenciones para controlar el reproductor multimedia?
- 23. El uso de filtros intención con broadcastReceivers Android
- 24. Uso de HashSets con ObservableCollection con WPF
- 25. Uso de bloqueo con Threading.Timer
- 26. Uso de diffstat con subversión?
- 27. Uso de Underscore.js con ASP.NET
- 28. Uso de PyQt con gevent
- 29. Uso de awt con android
- 30. Uso de git con BitBucket
Parece que los "detalles del protocolo de" enlace está muerto . – Equidamoid