25 votes

Existe-t-il des clients SSH en ligne de commande disponibles pour les téléphones Android enracinés ?

J'ai bien sûr ConnectBot, mais je cherche quelque chose que je puisse scripter.

Edit : Pour clarifier ici, je ne suis pas intéressé par en cours d'exécution scripts à partir d'un terminal. Ce que je veux faire, c'est exécuter une commande SSH de manière automatisée/planifiée. Tasker et Locale Execute sont l'équivalent de cron. Tout ce dont j'ai besoin, c'est de la commande 'ssh' à exécuter. de le script.

0 votes

Pour la scriptabilité, j'ai l'intention d'utiliser Tasker, soit directement, soit par l'intermédiaire du Locale Execute Plug-In. appbrain.com/app/de.elmicha.app.LocaleExecute

17voto

TREE Points 1162

Puisque ma question initiale concernait un binaire ssh, et qu'il existe une réponse à cette question, je vais accepter cette réponse. Cependant, il y a une autre façon de faire ce que je voulais faire, en quelque sorte, qui pourrait être intéressante pour quelqu'un un jour.

Tasker + ConnectBot peuvent être utilisés pour exécuter des commandes arbitraires à distance (ou locales, je suppose, mais Locale Execute est meilleur pour cela) selon un calendrier.

Étape 1 : Configurez votre connexion dans ConnectBot.

  • Vous pouvez avoir des connexions dupliquées dans ConnectBot tant qu'elles ont des alias différents. Vous devez d'abord renommer l'une d'entre elles (loin de user@host) afin de créer la seconde. Appuyez longuement et sélectionnez "Edit Host" pour effectuer ces changements.
  • Vous souhaitez probablement configurer une clé ssh sans mot de passe afin de pouvoir l'utiliser pour l'automatisation.
  • Une fois que la connexion fonctionne réellement, vous pouvez utiliser "Post-login automation" pour ajouter les commandes à distance que vous souhaitez exécuter. Assurez-vous qu'il y a une ligne vierge à la fin pour que la touche "Entrée" soit envoyée après votre dernière commande. Utilisez enter ou ; pour séparer les commandes. Je suggère d'utiliser quelque chose comme "echo hello" comme test jusqu'à ce que vous soyez sûr que les choses fonctionnent, et "exit" à la fin si vous ne voulez pas laisser la connexion ouverte.
  • Testez-le de manière isolée.

Étape 2 : Créez une tâche Tasker pour appeler connectbot.

  • Créez une nouvelle tâche dans Tasker.
  • Ajouter une action. A partir de Misc, sélectionnez "Action Intent".
  • Les champs sont :
    • Action : Android.intent.action.VIEW
    • Chat : Default
    • Données : url ssh, sous la forme "ssh://user@host/#alias" (sans les guillemets). L'alias, l'utilisateur et l'hôte ici doit correspondent à l'alias que vous avez configuré à l'étape 1.
    • Cible : Activité
    • Cliquez sur Test. Connectbot devrait s'ouvrir et vos commandes devraient s'exécuter sur l'hôte distant.

Étape 3 : Utilisez cette tâche dans le Tasker comme vous le feriez normalement.

0 votes

Existe-t-il un moyen de définir la connexion de manière programmatique, c'est-à-dire par le biais de Tasker et d'intentions d'appel ?

0 votes

Je n'en suis pas sûr. Je ne me souviens pas exactement de la manière dont j'ai trouvé les informations d'intention ci-dessus, mais il s'agit essentiellement d'une URL ssh standard. Il existe des outils qui permettent d'étudier les intentions des applications, mais je ne les ai pas utilisés.

0 votes

Je peux ajouter que si vous supprimez les paramètres par défaut de ConnectBot et qu'un autre client ssh est installé (BTEP, par exemple), les URLs ssh vous demanderont quelle application utiliser. Cela souligne le fait que ce qui précède est en quelque sorte un standard, à la fois "VIEW" et le format ssh. La seule chose spécifique à ConnectBot dans ce cas est le #alias à la fin.

13voto

Pablo Santa Cruz Points 276

Vous pouvez installer le Emulateur de terminal de google. Vous pouvez également consulter le site Meilleur émulateur de terminal Pro . J'ai essayé l'émulateur de terminal sur un téléphone non rooté et cela semble fonctionner correctement.

Better Terminal Emulator Pro comprend les éléments suivants client ssh dropbear qui peut être lancé depuis la ligne de commande ou via un lanceur. Plus d'informations sur les auteurs .

0 votes

Terminal Emulator se ferme de force systématiquement sur mon appareil, et apparemment sur beaucoup d'autres appareils. Je ne vois pas non plus d'indication qu'il puisse être lancé à partir de Tasker ou de la ligne de commande.

0 votes

Il s'avère que Better Terminal Emulator Pro inclut le binaire du client dropbear. Mettez à jour votre réponse pour inclure cette information, et je l'accepterai.

1 votes

Idéalement, vous ne devriez jamais utiliser un logiciel fermé comme Better Terminal Emulator Pro pour tout ce qui concerne la cryptographie. Je recommanderais de compiler dropbear ssh directement à partir des sources en utilisant les instructions des gens de Cyanogen, c'est probablement tout ce que BTEP a fait.

5voto

henriksen Points 745

Je sais que c'est un vieux sujet mais je voulais ajouter un commentaire sur le BTEP.

J'utilise également le binaire ssh de BTEP mais je l'appelle simplement à partir de son chemin au lieu de le lier /data/data/com.magicandroidapps.bettertermpro/bin/ssh Root@192.168.1.1

ou générer une paire de clés et utiliser l'authentification par clé publique. /data/data/com.magicandroidapps.bettertermpro/bin/ssh -i /data/data/com.magicandroidapps.bettertermpro/home/.ssh/id_rsa -l Root 192.168.1.1

J'utilise la commande ci-dessus depuis SL4A r4 dans divers scripts et cela fonctionne bien :)

avant de pouvoir faire cela, j'ai eu besoin de chmod a+x /data/data/com.magicandroidapps.bettertermpro/home/.ssh

Une fois que cela est fait et que vous sauvegardez/restaurez BTEP avec TitaniumBackup, les permissions sont conservées, ce qui signifie que si vous installez une nouvelle rom, vous pouvez simplement restaurer les applications et tous vos scripts fonctionneront à nouveau.

5voto

dvim Points 151

J'ai utilisé avec succès BotBrew basilic expérimental sous Android 4.4. BotBrew Basil Experimental est basé sur apt-get, donc après l'installation de l'APK et le bootstrap, j'ai juste fait apt-get install dropbear dans un shell Root pour installer le client (et le serveur) SSH.

3voto

Martin Espinoza Points 31

Installer l'émulateur de terminal et quickssh. Quickssh comprend également dropbear. Cela ne vous coûte rien, ce qui ne devrait pas être le cas, car c'est d'une simplicité déconcertante et c'est basé sur dropbear.

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

find -name ssh utilisateur@host

Problème résolu

1 votes

En regardant ce programme (sshdroid de beserker), je ne vois qu'une interface de serveur ssh. J'ai ensuite essayé l'émulateur de terminal par jack, mais je ne vois pas de commande ssh ajoutée. Et en cherchant quickssh, dans le play store, je ne le vois pas. Je ne vois que quicksshd(by teslacoil) qui a un petit prix et qui n'est sans doute pas un client ssh.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X