Czy są dostępne klienci SSH z wiersza poleceń dla zrootowanych telefonów z Androidem?

23

Oczywiście mam ConnectBota, ale szukam czegoś, co mogę napisać.

Edycja: Aby to wyjaśnić, nie jestem zainteresowany uruchamianiem skryptów z terminala. Chcę wykonać polecenie SSH w sposób automatyczny / zaplanowany. Tasker i Locale Execute są odpowiednikiem crona, wszystko czego potrzebuję to polecenie „ssh” do uruchomienia ze skryptu.

DRZEWO
źródło
W celu obsługi skryptów zamierzam użyć Taskera, bezpośrednio lub za pośrednictwem Locale Wykonaj wtyczkę appbrain.com/app/de.elmicha.app.LocaleExecute
TREE

Odpowiedzi:

12

Możesz zainstalować emulator terminala z Google. Alternatywnie jest Better Terminal Emulator Pro . Wypróbowałem emulator terminala na nierootowanym telefonie i wydawało się, że działa dobrze.

Better Terminal Emulator Pro zawiera klienta ssh dropbear , który można uruchomić z wiersza poleceń lub za pomocą programu uruchamiającego. Więcej informacji od autorów .

Hamish Downer
źródło
Emulator terminala konsekwentnie zamyka się na moim urządzeniu i najwyraźniej na wielu urządzeniach innych ludzi. Nie widzę też żadnych oznak, że można go uruchomić z Taskera lub z wiersza poleceń.
DRZEWO
Okazuje się, że Better Terminal Emulator Pro zawiera plik binarny klienta dropbear. Zaktualizuj swoją odpowiedź, aby zawierała te informacje, a ja ją zaakceptuję.
DRZEWO
1
Najlepiej, aby nigdy nie używać oprogramowania o zamkniętym źródle, takiego jak Better Terminal Emulator Pro, do czegokolwiek związanego z kryptografią. Polecam budowanie ssh dropbear bezpośrednio ze źródła, korzystając z instrukcji ludzi Cyanogen, to prawdopodobnie wszystko, co zrobił BTEP.
Jeff Burdges
1
Istnieje wiele aplikacji na Androida typu open source, które również instalują własną kopię klienta dropbear ssh, po prostu dodanie dowiązania symbolicznego sprawia, że ​​działa ono pod emulatorem terminali Google.
Jeff Burdges
link do emulatora terminala z google androlib.com/android.application.com-android-term-jpAz.aspx mówi „Ta aplikacja wydaje się być usunięta z Android Market” Nie widzę emulatora terminala przez Google w sklepie Google Play . Pierwszym wynikiem w sklepie Google Play jest emulator terminala Androida autorstwa Jacka Palevicha, ale nie ma on ssh.
barlop
17

Ponieważ moje pierwotne pytanie dotyczyło pliku binarnego ssh i istnieje na to odpowiedź, zaakceptuję tę odpowiedź. Istnieje jednak inny sposób na zrobienie tego, co chciałem, co może być dla kogoś interesujące.

Tasker + ConnectBot może służyć do wykonywania dowolnych zdalnych (lub lokalnych, jak sądzę, ale lepiej do tego Locale Execute) zgodnie z harmonogramem.

Krok 1: Skonfiguruj połączenie w ConnectBot.

  • Możesz mieć zduplikowane połączenia w ConnectBot, o ile mają one różne aliasy. Musisz zmienić nazwę jednego pierwszego (poza użytkownikiem @ host), aby utworzyć drugi. Naciśnij długo i wybierz „Edytuj hosta”, aby wprowadzić te zmiany.
  • Prawdopodobnie chcesz skonfigurować klucz ssh bez hasła, aby móc go używać do automatyzacji.
  • Po nawiązaniu połączenia możesz użyć „Automatyzacji po zalogowaniu”, aby dodać zdalne polecenia, które chcesz uruchomić. Upewnij się, że na końcu znajduje się pusty wiersz, aby Enter był wysyłany po ostatnim poleceniu. Użyj enter lub; do oddzielania poleceń. Sugeruję użycie czegoś takiego jak „echo hello” jako testu, dopóki nie będziesz pewien, że wszystko działa, i „wyjdź” na końcu, jeśli nie chcesz pozostawić otwartego połączenia.
  • Przetestuj to w izolacji.

Krok 2: Utwórz zadanie Taskera, aby wywołać connectbot.

  • Utwórz nowe zadanie w Tasker.
  • Dodaj akcję. Z Misc wybierz „Action Intent”
  • Te pola to:
    • Działanie: android.intent.action.VIEW
    • Cat: Domyślnie
    • Dane: ssh url, w postaci „ssh: // user @ host / # alias” (bez cudzysłowów). Alias, użytkownik i host tutaj muszą być zgodne z aliasem skonfigurowanym w kroku 1.
    • Cel: aktywność
    • Kliknij Test. Connectbot powinien się otworzyć, a twoje polecenia powinny zostać wykonane na zdalnym hoście.

Krok 3: Użyj tego zadania w Tasker, jak zwykle.

DRZEWO
źródło
Czy istnieje sposób programowego zdefiniowania połączenia, tj. Poprzez Tasker i wywołanie zamiarów?
Dang Khoa,
Nie jestem co do tego pewien. Nie pamiętam dokładnie, jak znalazłem powyższe informacje o zamiarze, ale jest to w zasadzie standardowy adres URL ssh. Istnieją narzędzia, które mogą badać zamiary aplikacji, ale ich nie używałem.
DRZEWO
Mogę dodać, że jeśli usuniesz wartości domyślne dla ConnectBot i zainstalujesz innego klienta ssh (na przykład BTEP), wtedy adresy URL ssh podpowiedzą, której aplikacji użyć. Podkreśla to, że powyższe jest czymś standardowym, zarówno „VIEW”, jak i format ssh. Jedyną rzeczą charakterystyczną dla ConnectBot w tym przypadku jest #alias na końcu.
DRZEWO
5

Wiem, że to stary wątek, ale chciałem dać +1 komentarzowi na temat BTEP

Używam również pliku binarnego ssh BTEP, ale po prostu wywołuję go z jego ścieżki zamiast linkować /data/data/com.magicandroidapps.bettertermpro/bin/ssh [email protected]

lub wygeneruj parę kluczy i użyj uwierzytelnienia klucza publicznego /data/data/com.magicandroidapps.bettertermpro/bin/ssh -i /data/data/com.magicandroidapps.bettertermpro/home/.ssh/id_rsa -l root 192.168.1.1

Używam powyższego polecenia z SL4A r4 w różnych skryptach i działa dobrze :)

zanim mogłem to zrobić, musiałem chmod a + x /data/data/com.magicandroidapps.bettertermpro/home/.ssh

gdy to zrobisz i wykonasz kopię zapasową / przywrócisz BTEP za pomocą TitaniumBackup, uprawnienia zostaną zachowane, co oznacza, że ​​jeśli sflashujesz nowy ROM, możesz po prostu przywrócić aplikacje i wszystkie skrypty będą działać ponownie

thewiep
źródło
5

Z powodzeniem korzystałem z BotBrew Basil Experimental podczas pracy z Androidem 4.4. BotBrew Basil Experimental jest oparty na apt-get, więc po zainstalowaniu APK i bootstrapowaniu zrobiłem właśnie apt-get install dropbearw powłoce root, aby zainstalować klienta SSH (i serwer).

dvim
źródło
3

Zainstaluj emulator terminala i Quickssh. Quickssh zawiera również dropbear. Nie kosztuje cię pieniędzy, co nie powinno, ponieważ jest to niezwykle proste i oparte na dropbear.

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

find -name ssh użytkownik @ host

Problem rozwiązany

Martin Espinoza
źródło
1
patrząc na ten program (sshdroid by beserker) widzę tylko GUI serwera ssh. Następnie wypróbowałem emulator terminala przez Jacka, ale nie widzę dodanej komendy ssh. I szukam Quickssh, w sklepie z zabawkami, nie widzę go. Widzę tylko quicksshd (teslacoil), który ma niewielką cenę i bez wątpienia nie jest klientem ssh.
barlop
2

Terminal Emulator absolutnie obsługuje skrypty *. Nie wierz tym, którzy nie mówią. Będziesz musiał nauczyć się skryptowania powłoki BASH, jeśli jeszcze go nie znasz. Napisz skrypt i zapisz go na karcie SD. Uruchom go z „sh filename” z Term.

Jeśli wyjaśnisz, co chcesz „skryptować” w związku z SSH, prawdopodobnie dam ci lepszą rekomendację.

* (Właściwie to system operacyjny Android obsługuje skrypty BASH, emulator terminala po prostu zapewnia dostęp do powłoki Androida, dlatego skrypty są z natury możliwe)

ch3mi0n
źródło
Zaktualizowałem pytanie. Nie chcę wywoływać skryptów za pomocą ssh, chcę wywoływać ssh ze skryptu.
DRZEWO
Dokładnie o co mi chodziło. Ponownie, jeśli chcesz podać jakieś szczegóły, mogę ci pomóc.
ch3mi0n
2

Aby wywołać ssh ze skryptu, wystarczy skonfigurować klucze ssh. W Internecie znajduje się milion poradników, ale na wiki Cyanogen znajduje się strona, która może być bardziej odpowiednia dla użytkowników Androida. Po skonfigurowaniu kluczy ogólne polecenie ssh wyglądałoby mniej więcej tak: ssh -i / PATH / TO / KEY USER @ IP

Możesz umieścić to w skrypcie, uruchomić, a będziesz zalogowany na zdalnym komputerze.

Ale oto, co myślę, że chcesz zrobić. Aby wykonać polecenie tylko na komputerze zdalnym, po prostu dodaj je w cudzysłowie: ssh -i / PATH / TO / KEY USER @ IP 'command'

Spowoduje to wykonanie polecenia na zdalnym komputerze bez zalogowania się. Możesz uruchamiać polecenia z opcjami, potokami, przekierowaniami itp., Ale czasem lepiej jest zachować ich prostotę. Z wyjątkiem opóźnienia wygląda to tak samo jak lokalne wykonywanie poleceń i może być używane w ten sam sposób.

Wykonywanie ustawień regionalnych może być wybredne, jeśli chodzi o to, jakie polecenia uruchomi. Jeśli to nie działa, spróbuj umieścić go w skrypcie i uruchomić go przy użyciu Locale Execute.

Miałem też problemy z plikiem binarnym ssh, który jest w telefonie, i odkryłem, że przeniesienie go z / system / xbin i utworzenie łącza w / system / xbin / ssh do pliku binarnego ssh Better Terminal Emulator jest bardziej niezawodne. Plik binarny BTEP znajduje się w /data/data/com.magicandroidapps.bettertermpro/bin/ssh


źródło
2

Botbrew to menedżer pakietów dla systemu Android, na przykład okpgdla BSD lub od niedawna, na przykład APTdla Debiana. Nieźle. Nie ma klienta ssh jako pakietu, ale nie jest zbyt trudne do zainstalowania, jeśli jesteś przyzwyczajony do budowania własnych pakietów. I może być przydatny jako zestaw narzędzi do tworzenia innych plików binarnych i bibliotek C / C ++ / etc.

Chociaż nie jest to bezpośrednia odpowiedź, może być przydatna dla niektórych osób.

Ehtesh Choudhury
źródło
Miły. Jest również w sklepie z zabawkami
DRZEWA
Niestety wygląda na to, że botbrew.com nie działa, co blokuje instalację.
DRZEWO
To dziwne, ponieważ myślę, że pakiety są hostowane na github.
Ehtesh Choudhury,
2

Teraz jest terminal o nazwie Termux, który można zainstalować w opensh. Dostępny w sklepie Google Play , F-Droid i Github .

glitchphan
źródło
proszę połączyć aplikację z Google Play
beeshyams,
-1

AndFTP może łączyć się przez dowolny skonfigurowany port, więc jestem pewien, że może łączyć się przez SSH. Ale nie jestem pewien, jak łatwo jest użyć tego skryptu. Sam używam aplikacji przez cały czas na moim serwerze hostingowym i działa świetnie.

Nie jestem pewien, czy możesz SSH z emulatorem terminalu, ale możesz też spróbować. Często używam tej aplikacji do robienia rzeczy, których jestem zbyt leniwy, aby robić z ADB.

Sieci
źródło
A FTP jest świetny. Czy emulator terminala jest skryptowalny?
DRZEWO
Nie sądzę, nie bez innej aplikacji. Jak wspomniałeś powyżej, Tasker jest prawdopodobnie najlepszym rozwiązaniem.
Wstęgi
-1

Używasz wtyczki ssh do Taskera? Nie potrzebuję binarnego roota ani ssh.

Tasker
źródło
7
Wymień jeden? Twoja odpowiedź może być wtedy pomocna :)
Izzy
Istnieje „SSH Plugin Paid” dla Taskera, ale jest on stary i nie jest już rozwijany. Obsługa błędów prawie nie istnieje, więc jest to po prostu ssh i niewiele więcej. Ale to działa.
frank
-3

Jeśli interesuje Cię prosty klient ssh, stworzyłem pod bibliotekę Bionic dla Androida-NDK drobpear-ssh-client-only. ftp://ftp.simtreas.ru/pub/my/dropbear/dropbear-ssh-only.tgz sourse and ftp://ftp.simtreas.ru/pub/my/dropbear/ssh binary

Vladimir Oleynik
źródło
Niestety nie jest to ogólna odpowiedź i będzie działać tylko na jednym z procesorów x86 / ARM / MIPS, prawdopodobnie ARM. Również powiązana treść najprawdopodobniej kiedyś zniknie. Większość niestandardowych pamięci ROM zawiera już działającego klienta czystego cmdline ssh.
ce4