題:
是否有可用於根目錄Android手機的命令行SSH客戶端?
TREE
2010-09-21 23:13:00 UTC
view on stackexchange narkive permalink

我當然有ConnectBot,但是我正在尋找可以編寫腳本的東西。

編輯:在這裡澄清一下,我對從終端運行 腳本不感興趣。我想做的是以自動/預定方式運行SSH命令。 Tasker和Locale Execute與cron等效,我只需要'ssh'命令從腳本中運行

為了實現腳本功能,我打算直接或通過Locale Execute插件http://www.appbrain.com/app/de.elmicha.app.LocaleExecute使用Tasker。
十二 答案:
TREE
2010-09-23 17:48:06 UTC
view on stackexchange narkive permalink

由於我最初的問題是關於ssh二進製文件的,因此有一個答案,我將接受該答案。但是,還有另一種方式可以做我想做的事,某天可能對某人很有趣。

Tasker + ConnectBot可用於按計劃執行任意遠程(或本地命令,但Locale Execute更好)。

步驟1:在ConnectBot中建立連接。

  • 您可以在ConnectBot中擁有重複的連接,只要它們具有不同的別名即可。您必須先重命名一個(遠離user @ host)才能創建第二個。長按並選擇“編輯主機”以執行這些更改。
  • 您可能希望設置不帶密碼的ssh密鑰,以便可以將其用於自動化。
  • 連接實際可用後,您可以使用“登錄後自動化”來添加要運行的遠程命令。確保末尾有一個空行,以便在最後一個命令之後發送回車。使用enter或;分隔命令。我建議使用“ echo hello”之類的測試作為測試,直到您確定一切正常為止;如果您不想使連接保持打開狀態,請在最後使用“退出”。
  • 對此進行單獨測試。

步驟2:創建Tasker任務以調用connectbot。

  • 在Tasker中創建一個新任務。
  • 添加操作。從“雜項”中選擇“操作意圖”
  • 字段是:
    • 操作:android.intent.action.VIEW
    • 貓:默認
    • 數據:ssh網址,格式為“ ssh:// user @ host /#alias”(不帶引號)。此處的別名,用戶和主機 必須與您在步驟1中設置的別名匹配。
    • 目標:活動
    • 單擊“測試”。 Connectbot應該打開,您的命令應該在遠程主機上執行。

第3步:通常,您可以在Tasker中使用此任務。

有沒有辦法以編程方式定義連接,即通過Tasker和調用意圖?
對此我不確定。我不記得確切地是如何找到上述Intent信息的,但它基本上是一個標準的ssh URL。有一些工具可以調查應用程序的Intent,但是我還沒有使用過。
我可以補充一點,如果您刪除了ConnectBot的默認設置並安裝了另一個ssh客戶端(例如BTEP),那麼ssh URL將提示使用哪個應用程序。這強調了以上內容都是標準的,“ VIEW”和ssh格式均如此。在這種情況下,唯一特定於ConnectBot的是最後的#alias。
Hamish Downer
2010-09-22 01:56:52 UTC
view on stackexchange narkive permalink

您可以從Google安裝終端仿真器。另外,還有更好的終端仿真器Pro。我在非root用戶的電話上嘗試了終端仿真器,但似乎工作正常。

更好的終端仿真器Pro包括 dropbear ssh客戶端,可以從命令行啟動它或通過啟動器。 作者的更多信息

終端仿真器始終在我的設備上,並且顯然在其他許多人的設備上強制關閉。我也看不到任何可以從Tasker或命令行運行的跡象。
事實證明,Better Terminal Emulator Pro確實包含了dropbear客戶端二進製文件。更新您的答案以包含該信息,我會接受。
理想情況下,對於任何與密碼學相關的事情,切勿使用諸如Better Better Emulator Pro之類的封閉源軟件。我建議直接使用Cyanogen的說明從源代碼直接構建dropbear ssh,這可能是BTEP所做的全部工作。
也有各種各樣的開源android應用程序也安裝了自己的dropbear ssh客戶端副本,只需添加一個符號鏈接即可使其在Google的Terminal Emulator下運行。
您從Google http://www.androlib.com/android.application.com-android-term-jpAz.aspx獲得的終端仿真器鏈接顯示“此應用程序似乎已從Android Market中刪除”,我看不到“終端仿真器”由Google在Google Play商店中提供。 Google Play商店中的第一個結果是傑克·帕萊維奇(Jack Palevich)的Android終端模擬器,但沒有ssh。
thewiep
2011-06-26 13:51:06 UTC
view on stackexchange narkive permalink

我知道這是一個舊線程,但想對BTEP的評論+1

我也使用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的上述命令,效果很好:)

在執行此操作之前,我需要先對a + x /data/data/com.magicandroidapps.bettertermpro/home/.ssh

進行chmod操作,然後使用TitaniumBackup備份/還原BTEP。保持不變,這意味著如果您刷新新的rom,則只需還原應用程序,所有腳本即可再次運行

dvim
2013-11-17 00:55:52 UTC
view on stackexchange narkive permalink

在運行Android 4.4時,我已成功使用 BotBrew Basil Experiment。 BotBrew Basil Experiment基於apt-get,因此在安裝APK和引導程序後,我只是在根shell中做了 apt-get install dropbear 來安裝SSH客戶端(和服務器)。

Martin Espinoza
2012-05-06 16:00:08 UTC
view on stackexchange narkive permalink

安裝終端仿真器和quickssh。 Quickssh還包括dropbear。不花錢,不應該花錢,這不應該因為這非常簡單並且它基於dropbear。

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

找到-name ssh user @ host

問題已解決

看著那個程序(beserker的sshdroid),我只看到一個ssh服務器gui。然後,我通過jack嘗試了終端仿真器,但未添加任何ssh命令。在遊戲商店中尋找quickssh時,我沒有看到它。我看到的只有quicksshd(由teslacoil提供)價格低廉,而且無疑不是ssh客戶。
ch3mi0n
2010-09-23 13:10:04 UTC
view on stackexchange narkive permalink

終端仿真器絕對支持腳本*。不要相信反對者。如果您還不熟悉BASH Shell腳本,則需要學習它。編寫腳本並將其保存在SD卡上。使用Term中的“ sh filename”運行它。

如果您要明確說明與SSH有關的“腳本”,我可能會給您更好的建議。

*(實際上是支持BASH腳本,Terminal Emulator只是授予您對Android Shell的訪問權限,因此腳本編寫是固有的)

更新了問題。我不想用ssh調用腳本,我想從腳本中調用ssh。
正是我要的。同樣,如果您想提供一些細節,我可能會提供更多幫助。
fubaya
2010-09-29 09:49:59 UTC
view on stackexchange narkive permalink

要從腳本調用ssh,您所需要做的就是設置ssh密鑰。網絡上有上百萬個使用方法,但是Cyanogen Wiki上有一個頁面可能更適合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處創建到Better Terminal Emulator ssh二進製文件的鏈接更為可靠。 BTEP二進製文件位於/data/data/com.magicandroidapps.bettertermpro/bin/ssh

Ehtesh Choudhury
2013-04-09 20:39:18 UTC
view on stackexchange narkive permalink

Botbrew是Android的軟件包管理器,類似於BSD的 okpg 或最近的Debian的 APT 。挺好的。它沒有ssh客戶端作為程序包,但是如果您習慣於構建自己的程序包,則看起來並不難。當您要構建其他C / C ++ / etc二進製文件和庫時,它可用作工具鏈。

因此,儘管這不是直接答案,但對於某些人來說可能很有用。

真好它也在Play商店中:https://play.google.com/store/apps/details?id=com.inportb.botbrew
可悲的是,它看起來像botbrew.com已關閉,阻止了安裝。
這很奇怪,因為我認為這些程序包託管在github上。
glitchphan
2016-04-23 13:18:06 UTC
view on stackexchange narkive permalink

現在有一個名為Termux的終端,您可以在其中安裝openssh。在 Google Play商店 F-Droid Github a上可用>。

請從Google Play關聯該應用
Webs
2010-09-21 23:24:09 UTC
view on stackexchange narkive permalink

AndFTP可以通過您配置的任何端口連接,因此我確定它可以通過SSH連接。但是我不確定編寫腳本的用法有多麼容易。我一直在自己的託管服務器上使用該應用程序,並且運行良好。我經常使用該應用來執行我對ADB懶得做的事情。

AndFTP很棒。 Terminal Emulator是否可以編寫腳本?
我不這麼認為,除非沒有其他應用程序。如上所述,Tasker可能是解決此問題的方法。
Tasker
2013-04-03 21:55:42 UTC
view on stackexchange narkive permalink

對Tasker使用ssh插件嗎?然後不需要root或ssh二進製文件。

叫一個?您的答案可能會有所幫助:)
有適用於Tasker的“ SSH插件已付費”,但是它已經過時了並且不再開發。錯誤處理幾乎不存在,因此它只是ssh而已。但這有效。
Vladimir Oleynik
2012-09-13 13:57:24 UTC
view on stackexchange narkive permalink

如果您對簡單的ssh客戶端很感興趣,那麼我是在Android-NDK仿生庫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)上運行。而且鏈接的內容很可能會在某個時間消失。大多數自定義ROM已經包含一個正常工作的cmdline ssh客戶端。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...