Cliente SSH para Android 4.4 compatible con autenticación basada en clave pública

Tarea a realizar:

  • Conéctese a un servidor SSH remoto a través de una red disponible e interactúe con el sistema remoto a través de una conexión de línea de comando/texto

Requisitos:

  • Se ejecuta en Android 4.4
  • Admite la autenticación de host basada en claves para garantizar que me estoy conectando al host al que creo que me estoy conectando incluso cuando estoy en una red potencialmente no confiable
  • Admite la autenticación de usuario basada en claves, por lo que no tengo que dar la contraseña de mi cuenta en el sistema remoto cada vez que me conecto.
  • Puede decirle al sistema remoto sobre el tamaño de la pantalla (filas x columnas de texto) para que las aplicaciones que miran esta información para determinar cuánto dibujar en la pantalla se vean de la manera prevista.
  • Disponible en la tienda de Google Play
  • Transmite cada pulsación de tecla inmediatamente (no E/S con búfer de línea en el lado del cliente)
  • Admite el movimiento de las teclas del cursor (envío de pulsaciones de las teclas de flecha arriba/abajo/izquierda/derecha) a través de algún mecanismo

Es bueno tener, sin ningún orden en particular:

  • Admite perfiles de conexión, por lo que no tengo que configurar cada conexión cada vez (me permite simplemente elegir, digamos, host.example.comde una lista y completa campos como nombre de usuario, puerto, preferencias de algoritmo o cualquier otra cosa que esté disponible)
  • Protección de contraseña para claves secretas locales
  • Idealmente, código abierto bajo alguna licencia razonablemente permisiva (BSD, GPL, MIT, Apache, ...)
  • Gratis (pero el bajo costo también está bien)
  • Capacidad para ejecutar un comando específico al conectarse a un host remoto, con el comando específico configurable por host
  • Tamaño de fuente seleccionable y colores estándar
  • Capacidad para mantener activas múltiples conexiones a diferentes hosts simultáneamente

No requerido:

  • Interacción gráfica con el sistema remoto (por ejemplo, reenvío X11)
  • Reenvío de puertos a través del túnel SSH
  • Hacer que la conexión SSH esté disponible para cualquier otra aplicación o sistema

¿Recomendaciones?

Respuestas (2)

El favorito de mi lista de clientes SSH es JuiceSSH . Veamos cómo cumple con sus requisitos:

  • Debe tener:
    • Conéctese a un servidor SSH remoto a través de una red disponible e interactúe con el sistema remoto a través de una conexión de línea de comando/texto: Claro, es un cliente SSH :)
    • Funciona con Android 4.4: Android 2.3 y versiones posteriores. Actualmente lo uso en 5.1
    • Admite la autenticación de host basada en claves: sí, yo uso eso.
    • Protección de contraseña para claves secretas locales: Sí. Puede llamarlo "almacén de claves local": debe ingresar su contraseña una vez antes de poder acceder a las claves almacenadas. AFAIR eso es una vez "por sesión" (es decir, no necesitará ingresarlo dos veces para dos conexiones, pero tendrá que volver a ingresarlo cuando apague y reinicie la aplicación)
    • Idealmente de código abierto: AFAIK es gratis (en su versión base; "Pro Addon" está disponible), pero no de código abierto. No puedo decir las "restricciones" de la versión gratuita, ya que inmediatamente obtuve mi actualización profesional :) Pero si está interesado, consulte la página de Playstore de la aplicación que sí lo incluye. En esencia, todo lo que he enumerado aquí está disponible con la versión gratuita.
    • Gratis: Sí. Aunque una actualización de bajo costo está disponible a través de IAP.
    • Capacidad para ejecutar un comando específico al conectarse:
    • Puede decirle al sistema remoto sobre el tamaño de la pantalla: no se verifica explícitamente, pero como todos mis clientes de terminal (por ejemplo, Midnight Commander) se escalan correctamente, diría que sí.
    • Disponible en la tienda Google Play: Sí, consulte el enlace.
    • Transmite cada pulsación de tecla de inmediato: nunca sentí ningún retraso, por lo que debería ajustarse a eso.
    • Admite el movimiento de la tecla del cursor: no probado, pero los datos de la tecla del cursor son solo secuencias ANSI específicas, por lo que debería funcionar. Recuerda vagamente haberlo hecho alguna vez.
  • Es bueno tener:
    • Soporta perfiles de conexión: sí, definitivamente, he configurado mis conexiones de host de esa manera.
    • Capacidad para ejecutar un comando específico al momento de la conexión: no está marcado, pero no me sorprendería :)
    • Tamaño de fuente seleccionable y colores estándar: parece, al menos en parte (vea las capturas de pantalla a continuación)
    • Capacidad para mantener activas múltiples conexiones a diferentes hosts simultáneamente: Sí, definitivamente.
  • No solicitado, pero buenos obsequios:
    • Haga clic en las URL en las ventanas de su terminal y se abrirán en su navegador
    • Teclado emergente con todos esos caracteres normalmente difíciles de encontrar (supongo que eso fue con lo que usé los comandos del cursor)
    • Use las teclas de volumen para cambiar rápidamente el tamaño de fuente
    • Organiza fácilmente tus conexiones por grupo
    • Generador de claves integrado (para crear nuevas claves SSH)
    • Las identidades (usuarios/contraseñas/claves) se abstraen de las conexiones. En lugar de actualizar cada conexión cuando cambia su contraseña, simplemente actualice la identidad y cualquier conexión vinculada a ella utilizará la nueva contraseña/clave.
    • Widget de pantalla de inicio para acceder rápidamente a las conexiones más utilizadas

JugoSSH JugoSSH JugoSSH JugoSSH JugoSSH JugoSSH
Capturas de pantalla de JuiceSSH (fuente: Google Play ; haga clic en las imágenes para obtener variantes más grandes)

En resumen, diría que este es su candidato ideal: se ajusta a todos sus requisitos "imprescindibles" e incluso a sus necesidades. Como está disponible de forma gratuita, le sugiero que vaya directamente a probarlo :)

Parece interesante. Creo que le daré una oportunidad a este, ¡gracias por la sugerencia!

Mi primer pensamiento es ConnectBot . Admite autenticación de clave pública, túneles, agrega hosts como en ~/.ssh/config, es gratuito, de código abierto, admite flechas con Hacker's Keyboard . Lo uso regularmente.

Y para que lo sepas, CyanogenMod viene sshbinario por defecto para que no tengas que instalar nada.