Apakah ada klien SSH baris perintah yang tersedia untuk ponsel Android yang di-rooting?

23

Saya tentu saja memiliki ConnectBot, tetapi saya sedang mencari sesuatu yang saya bisa skrip.

Sunting: Untuk memperjelas di sini, saya tidak tertarik menjalankan skrip dari terminal. Yang ingin saya lakukan adalah menjalankan perintah SSH secara otomatis / terjadwal. Execute Tasker dan Lokal adalah setara dengan cron, yang saya butuhkan adalah perintah 'ssh' untuk menjalankan dari skrip.

POHON
sumber
Untuk skripibilitas, saya bermaksud menggunakan Tasker, baik secara langsung atau melalui Locale Execute Plug-In appbrain.com/app/de.elmicha.app.LocaleExecute
TREE

Jawaban:

12

Anda dapat menginstal Terminal Emulator dari google. Atau ada yang lebih baik Terminal Emulator Pro . Saya mencoba Terminal Emulator pada ponsel yang tidak di-root dan sepertinya berfungsi dengan baik.

Terminal Emulator Pro yang lebih baik mencakup klien dropbear ssh , yang dapat diluncurkan dari baris perintah atau melalui peluncur. Info lebih lanjut dari penulis .

Hamish Downer
sumber
Terminal Emulator ditutup secara konsisten pada perangkat saya, dan tampaknya pada banyak perangkat orang lain. Saya juga tidak melihat indikasi apa pun bahwa itu dapat dijalankan dari Tasker, atau dari baris perintah.
POHON
Ternyata Better Terminal Emulator Pro tidak menyertakan biner klien dropbear. Perbarui jawaban Anda untuk memasukkan info itu, dan saya akan menerimanya.
POHON
1
Idealnya, Anda tidak boleh menggunakan perangkat lunak sumber tertutup seperti Better Terminal Emulator Pro untuk kriptografi apa pun yang terkait. Saya akan merekomendasikan membangun dropbear ssh langsung dari sumber menggunakan instruksi orang-orang Cyanogen, mungkin itu yang dilakukan BTEP.
Jeff Burdges
1
Ada berbagai aplikasi android open source yang menginstal sendiri dropbear ssh client, cukup menambahkan symlink membuatnya bekerja di bawah Terminal Emulator Google.
Jeff Burdges
tautan Anda untuk emulator terminal dari google androlib.com/android.application.com-android-term-jpAz.aspx mengatakan "Aplikasi ini tampaknya dihapus dari Android Market" Saya tidak melihat 'terminal emulator' oleh google di google play store . Hasil pertama di google play store adalah emulator terminal Android oleh jack palevich tetapi tidak memiliki ssh.
barlop
17

Karena pertanyaan awal saya adalah tentang binary ssh, dan ada jawaban untuk itu, saya akan menerima jawaban itu. Namun, ada cara lain untuk melakukan apa yang ingin saya lakukan, agak, yang mungkin menarik bagi seseorang suatu hari.

Tasker + ConnectBot dapat digunakan untuk mengeksekusi perintah arbitrary remote (atau lokal, tapi Locale Execute lebih baik untuk itu) sesuai jadwal.

Langkah 1: Atur koneksi Anda di ConnectBot.

  • Anda dapat memiliki koneksi duplikat di ConnectBot selama mereka memiliki alias yang berbeda. Anda harus mengganti nama yang pertama (jauh dari user @ host) untuk membuat yang kedua. Long Tekan dan pilih "Edit Host" untuk melakukan perubahan ini.
  • Anda mungkin ingin mengatur kunci ssh tanpa kata sandi sehingga Anda dapat menggunakannya untuk otomatisasi.
  • Setelah koneksi benar-benar berfungsi, Anda dapat menggunakan "Otomatisasi pasca masuk" untuk menambahkan perintah jarak jauh yang ingin Anda jalankan. Pastikan ada baris kosong di bagian akhir sehingga enter dikirim setelah perintah terakhir Anda. Gunakan masukkan atau; untuk memisahkan perintah. Saya sarankan menggunakan sesuatu seperti "echo halo" sebagai tes sampai Anda yakin semuanya bekerja, dan "keluar" di akhir jika Anda tidak ingin membiarkan koneksi terbuka.
  • Uji ini secara terpisah.

Langkah 2: Buat Tugas Tasker untuk memanggil connectbot.

  • Buat Tugas baru di Tasker.
  • Tambahkan Aksi. Dari Misc, pilih "Maksud Aksi"
  • Fieldnya adalah:
    • Tindakan: android.intent.action.VIEW
    • Kucing: Default
    • Data: ssh url, dalam bentuk "ssh: // user @ host / # alias" (tanpa tanda kutip). Alias, pengguna, dan host di sini harus cocok dengan alias yang Anda atur di Langkah 1.
    • Target: Aktivitas
    • Klik Uji. Connectbot harus terbuka dan perintah Anda harus dijalankan pada host jarak jauh.

Langkah 3: Gunakan Tugas ini di Tasker namun Anda biasanya.

POHON
sumber
Apakah ada cara untuk mendefinisikan koneksi secara programatik, yaitu melalui Tasker dan intensi panggilan?
Dang Khoa
Saya tidak yakin tentang itu. Saya tidak ingat persis bagaimana saya menemukan informasi Intent di atas, tetapi pada dasarnya URL ssh standar. Ada alat yang dapat menyelidiki Intents untuk aplikasi, tetapi saya belum menggunakannya.
POHON
Saya dapat menambahkan bahwa jika Anda menghapus default untuk ConnectBot dan menginstal klien ssh lain (BTEP, misalnya), maka URL ssh akan meminta aplikasi mana yang digunakan. Ini menggarisbawahi bahwa di atas adalah sesuatu yang standar, baik "LIHAT" dan format ssh. Satu-satunya hal khusus untuk ConnectBot dalam kasus ini adalah #alias pada akhirnya.
POHON
5

Saya tahu ini adalah utas lama tetapi ingin memberi +1 pada komentar tentang BTEP

Saya juga menggunakan binary ssh BTEP meskipun saya hanya menyebutnya dari jalurnya daripada menghubungkannya / data / data / com.magicandroidapps.bettertermpro/bin/ssh [email protected]

atau menghasilkan sepasang kunci dan menggunakan otentikasi kunci publik / data / data / com.magicandroidapps.bettertermpro/bin/ssh -i /data/data/com.magicandroidapps.bettertermpro/home/.ssh/id_rsa -l root 192.168.1.1

Saya menggunakan perintah di atas dari SL4A r4 di berbagai skrip dan berfungsi dengan baik :)

sebelum saya bisa melakukan ini, saya perlu chmod + x / data / data / com.magicandroidapps.bettertermpro/home/.ssh

setelah ini selesai dan Anda membuat cadangan / mengembalikan BTEP dengan TitaniumBackup izin disimpan ini berarti jika Anda menginstal rom baru Anda hanya dapat mengembalikan aplikasi dan semua skrip Anda akan bekerja lagi

terima kasih
sumber
5

Saya telah berhasil menggunakan BotBrew Basil Experimental ketika menjalankan Android 4.4. BotBrew Basil Experimental didasarkan pada apt-get jadi setelah menginstal APK dan bootstraping, saya baru saja melakukannya apt-get install dropbeardi root shell untuk menginstal SSH client (dan server).

dvim
sumber
3

Instal emulator terminal dan quickssh. Quickssh juga termasuk dropbear. Tidak memerlukan uang, yang seharusnya tidak karena ini sangat sederhana dan didasarkan pada dropbear.

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

find -name ssh user @ host

Masalah terpecahkan

Martin Espinoza
sumber
1
melihat program itu (sshdroid oleh beserker) saya hanya melihat gui ssh server. Saya kemudian mencoba terminal emulator dengan jack, tetapi tidak melihat perintah ssh ditambahkan. Dan mencari quickssh, di play store, saya tidak melihatnya. Saya hanya melihat quicksshd (oleh teslacoil) yang memiliki harga murah dan tidak diragukan lagi bukan klien ssh.
barlop
2

Terminal Emulator benar-benar mendukung skrip *. Jangan percaya para penentang. Anda harus mempelajari skrip BASH shell, jika Anda belum terbiasa dengannya. Tulis skrip dan simpan di kartu SD Anda. Jalankan dengan "sh filename" dari Term.

Jika Anda menjelaskan apa yang ingin Anda "skrip" lakukan dengan SSH, saya mungkin bisa memberikan rekomendasi yang lebih baik.

* (Ini sebenarnya OS Android yang mendukung skrip BASH, Terminal Emulator hanya memberi Anda akses ke shell Android, oleh karena itu skrip secara inheren dimungkinkan)

ch3mi0n
sumber
Memperbarui pertanyaan. Saya tidak ingin memanggil skrip dengan ssh, saya ingin memanggil ssh dari skrip.
POHON
Persis seperti yang kudapat. Sekali lagi, jika Anda ingin memberikan beberapa spesifik saya mungkin dapat bantuan lebih lanjut.
ch3mi0n
2

Untuk memanggil ssh dari skrip, yang perlu Anda lakukan hanyalah mengatur kunci ssh. Ada sejuta petunjuk di web, tetapi ada halaman di wiki Cyanogen yang mungkin lebih cocok untuk pengguna Android. Setelah Anda mengatur kunci, perintah ssh umum Anda akan terlihat seperti ini: ssh -i / PATH / TO / KEY USER @ IP

Anda bisa memasukkannya ke dalam skrip, jalankan, dan Anda akan masuk ke mesin jarak jauh.

Tapi inilah yang saya pikir ingin Anda lakukan. Untuk hanya menjalankan perintah pada komputer jarak jauh, tambahkan saja dalam tanda kutip tunggal: ssh -i / PATH / TO / KEY USER @ IP 'command'

Itu mengeksekusi perintah pada mesin jarak jauh tanpa masuk Anda. Anda dapat menjalankan perintah dengan opsi, pipa, arahan ulang dll, tetapi kadang-kadang lebih baik untuk membuatnya sederhana. Kecuali untuk keterlambatan, tampilannya sama dengan mengeksekusi perintah secara lokal dan dapat digunakan sama.

Execute Lokal dapat pilih-pilih tentang perintah apa yang akan dijalankan. Jika tidak berhasil, coba letakkan dalam skrip dan gunakan Peluncuran Lokal untuk menjalankan skrip.

Juga, saya punya masalah dengan ssh binary yang ada di telepon dan menemukan bahwa memindahkannya dari / system / xbin dan membuat tautan di / system / xbin / ssh ke Better Terminal Emulator ssh binary lebih dapat diandalkan. Biner BTEP ada di /data/data/com.magicandroidapps.bettertermpro/bin/ssh


sumber
2

Botbrew adalah manajer paket untuk Android, seperti okpgBSD atau lebih baru, seperti APTuntuk Debian. Cukup bagus. Itu tidak memiliki klien ssh sebagai paket, tetapi tidak terlihat terlalu sulit untuk dimasukkan jika Anda terbiasa membangun paket Anda sendiri. Dan itu bisa berguna sebagai toolchain ketika Anda ingin membangun binari dan pustaka C / C ++ / etc lainnya.

Jadi meskipun ini bukan jawaban langsung, mungkin bermanfaat bagi beberapa orang untuk mengetahuinya.

Ehtesh Choudhury
sumber
Bagus. Itu juga ada di play store: play.google.com/store/apps/details?id=com.inportb.botbrew
TREE
Sayangnya, sepertinya botbrew.com sedang down, yang menghalangi instalasi.
POHON
Itu aneh, karena saya pikir paket di-host di github.
Ehtesh Choudhury
2

Sekarang ada terminal bernama Termux yang dapat Anda instal dengan openssh in. Tersedia di Google Play Store , F-Droid , dan Github .

glitchphan
sumber
tautkan aplikasinya dari Google play
beeshyams
-1

AndFTP dapat terhubung melalui port apa pun yang Anda konfigurasi jadi saya yakin itu bisa terhubung melalui SSH. Tapi saya tidak yakin betapa mudahnya menggunakan skrip untuk itu. Saya menggunakan aplikasi sendiri sepanjang waktu untuk server hosting saya dan itu bekerja dengan baik.

Tidak yakin apakah Anda bisa SSH dengan Terminal Emulator, tetapi Anda bisa mencobanya juga. Saya sering menggunakan aplikasi itu untuk melakukan hal-hal yang terlalu malas saya lakukan dengan ADB.

Web
sumber
AndFTP bagus. Apakah Terminal Emulator dapat skrip?
POHON
Saya rasa tidak, tidak tanpa aplikasi lain. Seperti yang Anda sebutkan di atas, Tasker mungkin adalah cara untuk melakukannya.
Webs
-1

Gunakan plugin ssh untuk Tasker? Tidak perlu root atau ssh biner.

Tasker
sumber
7
Sebut satu? Jawaban Anda bisa sangat membantu :)
Izzy
Ada "Plugin SSH Dibayar" untuk Tasker, tetapi sudah lama dan tidak lagi dikembangkan. Penanganan kesalahan hampir tidak ada, jadi hanya ssh dan tidak lebih. Tapi itu berhasil.
franc
-3

Jika klien ssh sederhana menarik bagi Anda, saya buat di bawah perpustakaan Bionic Android-NDK drobpear-ssh-client-only. ftp://ftp.simtreas.ru/pub/my/dropbear/dropbear-ssh-only.tgz sourse dan ftp://ftp.simtreas.ru/pub/my/dropbear/ssh binary

Vladimir Oleynik
sumber
Ini bukan jawaban umum dan hanya akan bekerja pada salah satu dari x86 / ARM / MIPS, mungkin ARM. Juga konten yang tertaut kemungkinan besar akan menghilang pada suatu waktu. Sebagian besar ROM kustom sudah termasuk klien cmdline ssh murni yang berfungsi.
ce4