Существуют ли SSH-клиенты для командной строки для телефонов с ОС Android?


23

У меня конечно есть ConnectBot, но я ищу что-то, что я могу написать.

Изменить: чтобы уточнить здесь, я не заинтересован в запуске сценариев из терминала. Что я хочу сделать, это запустить команду SSH в автоматическом / запланированном порядке. Tasker и Locale Execute эквивалентны cron, все, что мне нужно, это команда 'ssh' для запуска из скрипта.


Для возможности написания сценариев я собираюсь использовать Tasker, либо напрямую, либо через плагин Locale Execute appbrain.com/app/de.elmicha.app.LocaleExecute
— TREE

Ответы:


12

Вы можете установить эмулятор терминала из Google. В качестве альтернативы есть Better Terminal Emulator Pro . Я попробовал Эмулятор терминала на телефоне без рута, и он, кажется, работал нормально.

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


Эмулятор терминала принудительно закрывается на моем устройстве и, очевидно, на многих других устройствах. Я также не вижу никаких признаков того, что он может быть запущен из Tasker или из командной строки.
— ДЕРЕВО

Оказывается, что Better Terminal Emulator Pro содержит двоичный файл клиента dropbear. Обновите свой ответ, чтобы включить эту информацию, и я приму ее.
— ДЕРЕВО

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

1
Существуют различные приложения с открытым исходным кодом для Android, которые также устанавливают собственную копию ssh-клиента dropbear, просто добавив символическую ссылку, чтобы она работала под эмулятором терминала Google.
— Джефф Берджес

Ваша ссылка на эмулятор терминала от google androlib.com/android.application.com-android-term-jpAz.aspx гласит: «Похоже, это приложение удалено из Android Market» Я не вижу «эмулятора терминала» от Google в магазине Google Play. , Первый результат в магазине Google Play - это эмулятор терминала Android, созданный Джеком Палевичем, но у него нет ssh.
— Бароп

17

Поскольку мой первоначальный вопрос был о двоичном файле ssh, и на него есть ответ, я приму этот ответ. Тем не менее, есть другой способ сделать то, что я хотел сделать, вроде бы, который может быть интересен кому-то когда-нибудь.

Tasker + ConnectBot можно использовать для выполнения произвольных удаленных (или локальных, я думаю, но лучше выполнить Locale Execute) по расписанию.

Шаг 1: Настройте ваше соединение в ConnectBot.

  • В ConnectBot могут быть повторяющиеся соединения, если они имеют разные псевдонимы. Вы должны переименовать одно первое (от user @ host), чтобы создать второе. Длительно нажмите и выберите «Редактировать хост» для выполнения этих изменений.
  • Возможно, вы захотите настроить ключ ssh без пароля, чтобы вы могли использовать его для автоматизации.
  • Как только соединение действительно установится, вы можете использовать «Автоматизацию после входа в систему» ​​для добавления удаленных команд, которые вы хотели бы выполнить. Убедитесь, что в конце есть пустая строка, чтобы после последней команды вводился ввод. Используйте ввод или; разделять команды. Я предлагаю использовать что-то вроде «echo hello» в качестве теста, пока вы не будете уверены, что все работает, и «выход» в конце, если вы не хотите оставлять соединение открытым.
  • Проверьте это в изоляции.

Шаг 2: Создайте задачу Tasker для вызова connectbot.

  • Создайте новую задачу в Tasker.
  • Добавить действие. Из Разного, выберите «Действие намерения»
  • Поля:
    • Действие: android.intent.action.VIEW
    • Cat: по умолчанию
    • Данные: URL-адрес ssh, в виде «ssh: // user @ host / # alias» (без кавычек). Псевдоним, пользователь и хост здесь должны совпадать с псевдонимом, установленным на шаге 1.
    • Цель: активность
    • Нажмите Тест. Connectbot должен открыться, и ваши команды должны выполняться на удаленном хосте.

Шаг 3: Используйте эту задачу в Tasker, как обычно.


Есть ли способ определить соединение программно, т. Е. Через Tasker и намерения вызова?
— Данг Кхоа

Я не уверен в этом. Я не помню точно, как я нашел вышеуказанную информацию о намерениях, но это в основном стандартный ssh ​​URL. Существуют инструменты, которые могут исследовать Intents для приложений, но я ими не пользовался.
— ДЕРЕВО

Я могу добавить, что если вы удаляете настройки по умолчанию для ConnectBot и устанавливаете другой клиент ssh (например, BTEP), тогда URL-адреса ssh подскажут, какое приложение использовать. Это подчеркивает, что вышеприведенное является чем-то стандартным, как "VIEW", так и в формате ssh. Единственная вещь, специфичная для ConnectBot в этом случае, это #alias на конце.
— ДЕРЕВО

5

Я знаю, что это старая ветка, но хотел добавить +1 комментарий о BTEP

Я также использую двоичный файл BTEP ssh, хотя я просто вызываю его по его пути, а не связываю его /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 также включает dropbear. Не стоит вам денег, чего не стоит, потому что это невероятно просто и основано на dropbear.

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

find -name ssh пользователь @ хост

Проблема решена


1
глядя на эту программу (sshdroid от beserker) я вижу только графический интерфейс сервера ssh. Затем я попробовал эмулятор терминала через гнездо, но не вижу добавленной команды ssh. И, ища quickssh, в магазине игр я этого не вижу. Я вижу только quicksshd (от teslacoil), который имеет небольшую цену и, несомненно, не является клиентом ssh.
— Barlop

2

Terminal Emulator абсолютно поддерживает скрипты *. Не верьте негодяям. Вам нужно будет изучить сценарии оболочки BASH, если вы еще не знакомы с ним. Напишите скрипт и сохраните его на SD-карте. Запустите его с помощью «sh filename» из Term.

Если вы проясните, что именно вы хотите «написать» о том, что делать с SSH, я, вероятно, могу дать вам лучшую рекомендацию.

* (На самом деле Android OS поддерживает сценарии BASH, Terminal Emulator просто предоставляет вам доступ к оболочке 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 двоичного файла лучшего эмулятора более надежно. Двоичный файл BTEP находится в /data/data/com.magicandroidapps.bettertermpro/bin/ssh


2

Botbrew - это менеджер пакетов для Android, например, okpgдля BSD или совсем недавно, например, APTдля Debian. Довольно мило У него нет ssh-клиента в качестве пакета, но его не сложно сложить, если вы привыкли создавать собственные пакеты. И он может быть полезен как набор инструментов для создания других двоичных файлов и библиотек C / C ++ / etc.

Так что, хотя это не прямой ответ, это может быть полезно для некоторых людей.


Ницца. Он также находится в игровом магазине: play.google.com/store/apps/details?id=com.inportb.botbrew
— TREE,

К сожалению, похоже, что botbrew.com не работает, что блокирует установку.
— ДЕРЕВО

Это странно, потому что я думаю, что пакеты размещены на github.
— Эхтеш Чоудхури


-1

AndFTP может подключаться через любой порт, который вы настраиваете, поэтому я уверен, что он может подключаться через SSH. Но я не уверен, насколько легко написать сценарий его использования. Я все время использую приложение для своего хостинг-сервера, и оно прекрасно работает.

Не уверен, что вы можете использовать SSH с эмулятором терминала, но вы тоже можете попробовать. Я часто использую это приложение для того, чтобы делать то, что мне лень делать с АБР.


AndFTP отлично. Терминальный эмулятор скриптов?
— ДЕРЕВО

Я так не думаю, не без другого приложения. Как вы упомянули выше, Tasker - это, вероятно, способ пойти с этим.
— Вебс

-1

Использовать плагин ssh для Tasker? Тогда не нужен бинарный файл root или ssh.


7
Имя одно? Ваш ответ может быть полезен тогда :)
— Иззи

Для Tasker есть «SSH Plugin Paid», но он устарел и больше не разрабатывается. Обработка ошибок почти не существует, так что это просто ssh и не намного. Но это работает.
— Франк

-3

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


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