Чи є клієнти командного рядка SSH для вкорінених телефонів Android?


23

У мене, звичайно, є ConnectBot, але я шукаю те, що можу сценарій.

Редагувати: Для уточнення тут мені не цікаво запускати сценарії з терміналу. Що я хочу зробити, це запустити команду SSH в автоматизованому / запланованому порядку. Tasker і Locale Execute - еквівалент cron, мені потрібно лише команду 'ssh' для запуску зі сценарію.


Для написання сценарію я маю намір використовувати Tasker безпосередньо або через Locale Execute Plug-In appbrain.com/app/de.elmicha.app.LocaleExecute
TREE

Відповіді:


12

Ви можете встановити термінальний емулятор з google. Крім того, існує кращий термінальний емулятор Pro . Я спробував термінальний емулятор на не вкоріненому телефоні, і, здавалося, він працює добре.

Better Terminal Emulator Pro включає клієнт dropbear ssh , який можна запустити з командного рядка або через пусковий апарат . Більше інформації від авторів .


Сила термінального емулятора закривається послідовно на моєму пристрої, і, очевидно, на багатьох пристроях інших людей. Я також не бачу жодних ознак того, що це може бути запущено з Tasker або з командного рядка.
ТРЕЙ

Виявляється, що Better Terminal Emulator Pro включає бінарний клієнт, що випускається. Оновіть свою відповідь, щоб включити цю інформацію, і я прийму її.
ДРУГА

1
В ідеалі ніколи не слід використовувати програмне забезпечення із закритим кодом, як-от Better Terminal Emulator Pro, для будь-якої криптографії. Я б рекомендував будувати dropbear ssh безпосередньо з джерела, використовуючи інструкції людей Cyanogen, це, мабуть, все, що зробив BTEP.
Джефф Бердджес

1
Існують різні програми з відкритим кодом для Android, які також встановлюють власну копію ssh-клієнта dropbear ssh, просто додавання символьної посилання змушує її працювати під термінальним емулятором Google.
Джефф Бурджес

ваше посилання на термінальний емулятор від google androlib.com/android.application.com-android-term-jpAz.aspx говорить: "Ця програма, здається, видалена з Android Market", я не бачу "термінального емулятора" від Google в Google Play Store . Перший результат у магазині google play - це емулятор терміналів Android від Джека Палевича, але він не має ssh.
барлоп

17

Оскільки моє первісне запитання стосувалося двійкового файлу ssh, і на це є відповідь, я прийму цю відповідь. Однак є ще один спосіб зробити те, що я хотів зробити, свого роду, що може комусь цікаво одного дня.

Tasker + ConnectBot можна використовувати для виконання довільних віддалених (або локальних, я думаю, але Locale Execute для цього краще) за графіком.

Крок 1. Налаштуйте своє з'єднання в ConnectBot.

  • Ви можете мати дублікати з'єднань у ConnectBot, якщо вони мають різні псевдоніми. Вам потрібно перейменувати перше (подалі від користувача @ хост), щоб створити друге. Довго натисніть та виберіть "Редагувати хост", щоб виконати ці зміни.
  • Напевно, ви хочете встановити ключ ssh без пароля, щоб ви могли використовувати це для автоматизації.
  • Після того як з'єднання справді працює, ви можете використовувати "Автоматизацію після входу", щоб додати віддалені команди, які ви хочете запустити. Переконайтеся, що в кінці є порожній рядок, щоб ввести повідомлення після останньої команди. Використовуйте enter або; розділити команди. Я пропоную використовувати щось на зразок "echo hello" в якості тесту, поки ви не впевнені, що все працює, і "вийти" наприкінці, якщо ви не хочете залишати з'єднання відкритим.
  • Перевірте це ізольовано.

Крок 2: Створіть завдання Tasker для виклику connectbot.

  • Створіть нове завдання в програмі Tasker.
  • Додати дію. У розділі Різне виберіть "Намір дій"
  • Поля:
    • Дія: android.intent.action.VIEW
    • Кіт: за замовчуванням
    • Дані: ssh url у вигляді "ssh: // user @ host / # alias" (без лапок). Псевдонім, користувач і хост тут повинні відповідати псевдоніму, який ви встановили на кроці 1.
    • Мета: активність
    • Клацніть Тест. Connectbot повинен відкритися, а ваші команди повинні виконуватись на віддаленому хості.

Крок 3: Використовуйте це завдання в програмі Tasker, однак зазвичай.


Чи є спосіб визначити з'єднання програмно, тобто за допомогою Tasker та викликів намірів?
Данг Хоа

Я не впевнений у цьому. Я не пригадую точно, як я знайшов вищевказану інформацію про наміри, але це в основному стандартна ssh URL. Є інструменти, які можуть досліджувати Інтенти для додатків, але я не використовував їх.
ТРЕЙ

Я можу додати, що якщо ви видалите стандартні налаштування для ConnectBot та інший інстальований ssh-клієнт (наприклад, BTEP), тоді ssh URL-адреси підкажуть, який додаток використовувати. Це підкреслює, що вищезгадане є чимось стандартним, як "VIEW", так і форматом ssh. Єдине, що в цьому випадку є специфічним для ConnectBot - це #alias в кінці.
ТРЕЙ

5

Я знаю, що це стара тема, але хотів поставити +1 коментарю щодо BTEP

Я також використовую ssh бінарний файл BTEP, хоча я просто називаю його зі свого шляху, а не зв'язати його /data/data/com.magicandroidapps.bettertermpro/bin/ssh root@192.168.1.1

або генеруйте пару ключів і використовуйте автентифікацію відкритих ключів /data/data/com.magicandroidapps.bettertermpro/bin/ssh -i /data/data/com.magicandroidapps.bettertermpro/home/.ssh/id_rsa -l root 192.168.1.1

Я використовую вищезазначену команду від SL4A r4 в різних сценаріях, і вона працює чудово :)

перш ніж я міг це зробити, мені потрібно було chmod a + x /data/data/com.magicandroidapps.bettertermpro/home/.ssh

як тільки це буде зроблено, і ви зробите резервну копію / відновлення BTEP за допомогою TitaniumBackup, дозволи зберігаються, це означає, що якщо ви спалахнете новий диск, ви можете просто відновити програми, і всі ваші сценарії знову працюватимуть


5

Я успішно використовував BotBrew Basil Experimental під час роботи з Android 4.4. BotBrew Basil Experimental заснований на apt-get, тому після встановлення APK та завантаження я щойно зробив apt-get install dropbearу кореневій оболонці, щоб встановити клієнт SSH (та сервер).


3

Встановіть емулятор терміналу та quickssh. У Quickssh також входить дропбір. Це не коштує вам грошей, чого не слід, тому що це надзвичайно просто, і це засновано на краплі.

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

find -name ssh користувач @ хост

Проблема вирішена


1
дивлячись на цю програму (sshdroid by beserker), я бачу лише gui-сервер ssh. Потім я спробував емулятор терміналу за допомогою jack, але не бачив жодної команди ssh. А шукаючи швидкого, в ігровому магазині я цього не бачу. Я бачу лише quicksshd (teslacoil), який має низьку ціну, і, без сумніву, це не ssh-клієнт.
барлоп

2

Термінальний емулятор абсолютно підтримує сценарії *. Не вірте найговорикам. Вам потрібно буде вивчити сценарії оболонок BASH, якщо ви вже не знайомі з цим. Напишіть сценарій і збережіть його на SD-картці. Запустіть його з "sh filename" від Term.

Якщо ви поясните, що саме ви хочете "скрипт" мати відношення до SSH, я, швидше за все, можу дати вам кращу рекомендацію.

* (Насправді ОС Android підтримує сценарії BASH. Термінальний емулятор просто надає вам доступ до оболонки Android, тому сценарій за своєю суттю можливий)


Оновлено питання. Я не хочу називати скрипти зі ssh, я хочу зателефонувати ssh із скрипту.
ДРУГА

Саме те, в що я потрапляв. Знову ж таки, якщо ви хочете дати якісь конкретні відомості, я можу вам допомогти.
ch3mi0n

2

Для виклику ssh із скрипту, все, що вам потрібно зробити, - це встановити ключі ssh. В Інтернеті є мільйон практичних запитів, але на вікі Cyanogen є сторінка, яка, можливо, більше підходить користувачам Android. Після встановлення ключів ваша загальна команда ssh виглядатиме приблизно так: ssh -i / PATH / TO / KEY USER @ IP

Ви можете помістити це в сценарій, запустити його, і ви увійдете в систему на віддаленій машині.

Але ось що я думаю, ти хочеш зробити. Щоб виконати команду лише на віддаленому комп'ютері, просто додайте її в одиничні лапки: ssh -i / PATH / TO / KEY USER @ IP 'command'

Це виконує команду на віддаленій машині, не входячи в систему. Ви можете запускати команди з параметрами, трубами, переадресаціями тощо, але іноді краще їх просто робити. За винятком затримки, це виглядає так само, як виконання команд (ив) локально, і їх можна використовувати ті самі.

Locale Execute може бути прискіпливим до того, які команди будуть виконуватись. Якщо це не працює, спробуйте ввести його в скрипт і скористайтеся програмою Locale Execute для запуску сценарію.

Крім того, у мене виникли проблеми з бінарним файлом ssh, який знаходиться на телефоні, і я виявив, що переміщення його з / system / xbin та створення посилання на / system / xbin / ssh до кращого термінального емулятора ssh binary є більш надійним. Бінарний файл BTEP знаходиться в /data/data/com.magicandroidapps.bettertermpro/bin/ssh


2

Botbrew - це менеджер пакунків для Android, як у okpgBSD або останнім часом, як APTу Debian. Дуже приємно. У ньому немає ssh-клієнта як пакета, але він виглядає не надто важко, якщо ви звикли створювати власні пакунки. І це може бути корисно як ланцюжок інструментів, коли ви хочете створити інші C / C ++ / тощо бінарні файли та бібліотеки.

Тому, хоча це не є прямою відповіддю, деякі люди можуть бути корисними про це.


Приємно. Це також у магазині ігор: play.google.com/store/apps/details?id=com.inportb.botbrew
ДРЕВО

На жаль, схоже, що botbrew.com не працює, що блокує встановлення.
ТРЕЙ

Це дивно, адже я думаю, що пакети розміщуються на github.
Ehtesh Choudhury


-1

AndFTP може з'єднуватися через будь-який порт, який ви налаштовуєте, тому я впевнений, що він може з'єднатися через SSH. Але я не впевнений, наскільки легко використовувати сценарій. Я використовую додаток весь час для свого хостинг-сервера, і він чудово працює.

Не впевнений, чи можете ви SSH за допомогою термінального емулятора, але ви можете також спробувати. Я часто використовую цей додаток, щоб робити речі, які я занадто ледачий робити з ADB.


AndFTP - це чудово. Чи можливий сценарій термінального емулятора?
ТРЕЙ

Я не думаю, що не без іншого додатку. Як ви вже згадували вище, Tasker - це, мабуть, шлях із цим.
Веб

-1

Використовувати плагін ssh для Tasker? Тоді вам не потрібен двійковий корінь або ssh.


7
Назвіть одну? Тоді ваша відповідь може бути корисною :)
Izzy

Існує "SSH плагін платно" для Tasker, але він старий і вже не розроблений. Поводження з помилками майже не існує, тому це просто ssh і не набагато більше. Але це працює.
франк

-3

Якщо простий клієнт-ssh вам цікавий, я створив під Android-NDK Bionic бібліотеку drobpear-ssh-client-only. ftp://ftp.simtreas.ru/pub/my/dropbear/dropbear-ssh-only.tgz sourse та ftp://ftp.simtreas.ru/pub/my/dropbear/ssh binary


Це на жаль не є загальною відповіддю, і вона працюватиме лише на одному з x86 / ARM / MIPS, ймовірно, ARM. Також пов'язаний вміст, швидше за все, зникне через деякий час. Більшість призначених для користувача ПЗУ вже включають робочий чистий cmdline ssh-клієнт.
ce4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.