25 votos

¿Existe algún cliente SSH de línea de comandos disponible para teléfonos Android rooteados?

Por supuesto que tengo ConnectBot, pero estoy buscando algo que pueda script.

Edición: Para aclarar aquí, no estoy interesado en corriendo scripts desde un terminal. Lo que quiero hacer es ejecutar un comando SSH de forma automatizada/programada. Tasker y Locale Execute son el equivalente de cron, todo lo que necesito es el comando 'ssh' para ejecutar de el script.

0 votos

Para la scriptabilidad, tengo la intención de utilizar Tasker, ya sea directamente o a través de Locale Execute Plug-In appbrain.com/app/de.elmicha.app.LocaleExecute

17voto

TREE Puntos 897

Como mi pregunta original era sobre un binario ssh, y hay una respuesta para eso, aceptaré esa respuesta. Sin embargo, hay otra manera de hacer lo que quería hacer, más o menos, que podría ser interesante para alguien algún día.

Tasker + ConnectBot se puede utilizar para ejecutar comandos remotos arbitrarios (o locales, supongo, pero Locale Execute es mejor para eso) en un horario.

Paso 1: Configurar la conexión en ConnectBot.

  • Puedes tener conexiones duplicadas en ConnectBot siempre que tengan diferentes alias. Tienes que cambiar el nombre de una de ellas primero (lejos de user@host) para poder crear la segunda. Pulsa prolongadamente y selecciona "Editar host" para realizar estos cambios.
  • Probablemente quieras configurar una clave ssh sin contraseña para poder utilizarla en la automatización.
  • Una vez que la conexión funcione realmente, puedes utilizar la "Automatización posterior al inicio de sesión" para añadir los comandos remotos que quieras ejecutar. Asegúrate de que hay una línea en blanco al final para que se envíe enter después de tu último comando. Usa enter o ; para separar los comandos. Sugiero usar algo como "echo hello" como prueba hasta que estés seguro de que las cosas funcionan, y "exit" al final si no quieres dejar la conexión abierta.
  • Pruebe esto de forma aislada.

Paso 2: Crear una tarea Tasker para llamar a connectbot.

  • Cree una nueva tarea en Tasker.
  • Añadir una acción. Desde Misc, seleccione "Action Intent"
  • Los campos son:
    • Acción: Android.intent.action.VIEW
    • Cat: Por defecto
    • Datos: url ssh, en forma de "ssh://usuario@host/#alias" (sin las comillas). El alias, el usuario y el host aquí debe coincida con el alias que configuró en el paso 1.
    • Objetivo: Actividad
    • Haz clic en Probar. Connectbot debería abrirse y sus comandos deberían ejecutarse en el host remoto.

Paso 3: Utilice esta tarea en Tasker como lo haría normalmente.

0 votos

¿Existe una forma de definir la conexión de forma programada, es decir, a través de Tasker y llamando a intents?

0 votos

No estoy seguro de ello. No recuerdo exactamente cómo encontré la información de Intent anterior, pero es básicamente una URL ssh estándar. Hay herramientas que pueden investigar los Intents de las aplicaciones, pero no las he utilizado.

0 votos

Puedo añadir que si eliminas los valores por defecto de ConnectBot y tienes otro cliente ssh instalado (BTEP, por ejemplo) entonces las URLs ssh te preguntarán qué aplicación usar. Esto subraya que lo anterior es una especie de estándar, tanto la "VISTA" como el formato ssh. Lo único específico de ConnectBot en este caso es el #alias al final.

13voto

Hamish Downer Puntos 460

Puede instalar el Emulador de terminal de Google. Como alternativa está el Mejor emulador de terminal Pro . He probado el emulador de terminal en un teléfono no rooteado y parece que funciona bien.

Better Terminal Emulator Pro incluye el cliente ssh dropbear que puede ser lanzado desde la línea de comandos o a través de un lanzador. Más información de los autores .

0 votos

El Emulador de Terminal se cierra a la fuerza constantemente en mi dispositivo, y aparentemente en los dispositivos de muchas otras personas. Tampoco veo ninguna indicación de que se pueda ejecutar desde Tasker, o desde la línea de comandos.

0 votos

Resulta que Better Terminal Emulator Pro sí incluye el binario del cliente dropbear. Actualiza tu respuesta para incluir esa información y la aceptaré.

1 votos

Lo ideal es no utilizar nunca software de código cerrado como Better Terminal Emulator Pro para nada relacionado con la criptografía. Yo recomendaría construir dropbear ssh directamente desde el código fuente usando las instrucciones de la gente de Cyanogen, eso es probablemente todo lo que hizo BTEP.

5voto

thewiep Puntos 51

Sé que es un hilo antiguo, pero quería +1 el comentario sobre BTEP

También estoy usando el binario ssh de BTEP aunque sólo lo llamo desde su ruta en lugar de enlazarlo /data/data/com.magicandroidapps.bettertermpro/bin/ssh Root@192.168.1.1

o generar un par de claves y utilizar la autenticación de clave pública /data/data/com.magicandroidapps.bettertermpro/bin/ssh -i /data/data/com.magicandroidapps.bettertermpro/home/.ssh/id_rsa -l Root 192.168.1.1

Yo uso el comando anterior de SL4A r4 en varios scripts y funciona bien :)

antes de poder hacer esto necesitaba chmod a+x /data/data/com.magicandroidapps.bettertermpro/home/.ssh

una vez que se hace esto y se hace una copia de seguridad/restauración de BTEP con TitaniumBackup los permisos se mantienen esto significa que si usted flashea una nueva rom puede simplemente restaurar las aplicaciones y todos sus scripts funcionarán de nuevo

5voto

Martynas Puntos 141

He utilizado con éxito BotBrew Basil Experimental cuando se ejecuta Android 4.4. BotBrew Basil Experimental se basa en apt-get así que después de instalar el APK y el bootstraping sólo hice apt-get install dropbear en un shell Root para instalar el cliente SSH (y el servidor).

3voto

Martin Espinoza Puntos 31

Instala el emulador de terminal y quickssh. Quickssh también incluye dropbear. No te cuesta dinero, que no debería porque esto es super sencillo y está basado en dropbear.

https://play.google.com/store/apps/details?id=berserker.Android.apps.sshdroid

find -name ssh usuario@host

Problema resuelto

1 votos

Mirando ese programa(sshdroid by beserker) veo solo un gui de servidor ssh. Luego probé con el emulador de terminal de jack, pero no veo ningún comando ssh añadido. Y buscando quickssh, en la play store, no lo veo. Solo veo quicksshd(por teslacoil) que tiene un precio pequeño y sin duda no es un cliente ssh.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X