我当然有ConnectBot,但我正在寻找可以编写脚本的东西。

编辑:在这里澄清一下,我对从终端运行脚本不感兴趣。我想做的是以自动/预定方式运行SSH命令。 Tasker和Locale Execute相当于cron,我需要的是从脚本运行的“ ssh”命令。

评论

为了实现脚本功能,我打算直接或通过Locale Execute插件使用Tasker appbrain.com/app/de.elmicha.app.LocaleExecute

#1 楼

您可以从Google安装终端仿真器。另外,还有更好的终端仿真器Pro。我在非root用户的电话上尝试了终端仿真器,它似乎可以正常工作。作者的更多信息。

评论


终端仿真器始终在我的设备上,甚至在其他许多人的设备上,始终强制关闭。我也看不到任何可以从Tasker或命令行运行的迹象。

–树
2010-09-22 12:22

事实证明,Better Terminal Emulator Pro确实包含了dropbear客户端二进制文件。更新您的答案以包含该信息,我会接受。

–树
2010-09-23 12:34



理想情况下,对于任何与密码学相关的事情,都绝对不要使用诸如Better Terminal Emulator Pro之类的开源软件。我建议直接使用Cyanogen的说明从源代码直接构建dropbear ssh,这可能是BTEP所做的全部工作。

–杰夫·伯吉斯(Jeff Burdges)
2012年5月27日21:18



也有各种各样的开源android应用程序也安装了自己的dropbear ssh客户端副本,只需添加一个符号链接即可使其在Google的Terminal Emulator下运行。

–杰夫·伯吉斯(Jeff Burdges)
2012年5月27日在21:21

您从google androlib.com/android.application.com-android-term-jpAz.aspx获得的终端仿真器链接说“此应用程序似乎已从Android Market中删除”,我看不到Google在Google Play商店中没有“终端仿真器” 。 Google Play商店中的第一个结果是杰克·帕莱维奇(Jack Palevich)的Android终端模拟器,但没有ssh。

– barlop
2014年9月3日,11:40



#2 楼

由于我最初的问题是关于ssh二进制文件的,因此有一个答案,我将接受该答案。但是,还有另一种方式可以做我想做的事,某天可能对某人很有趣。

Tasker + ConnectBot可用于按计划执行任意远程(或本地,但Locale Execute更好)。

步骤1:在ConnectBot中建立连接。


只要别名不同,就可以在ConnectBot中具有重复的连接。您必须先重命名一个(远离user @ host)才能创建第二个。长按并选择“编辑主机”以执行这些更改。
您可能希望设置不带密码的ssh密钥,以便可以将其用于自动化。
一旦连接真正起作用,就可以使用“登录后自动化”来添加要运行的远程命令。确保末尾有一个空行,以便在最后一个命令之后发送回车。使用enter或;分隔命令。我建议使用“ echo hello”之类的测试作为测试,直到您确定一切正常为止;如果您不想使连接保持打开状态,请在最后“退出”。
单独进行测试。

步骤2:创建Tasker任务以调用connectbot。


在Tasker中创建一个新任务。
添加动作。在“其他”中,选择“动作意图”
,这些字段是:

动作:android.intent.action.VIEW
猫:默认值
数据:ssh url,位于形式为“ ssh:// user @ host /#alias”(不带引号)。此处的别名,用户和主机必须与您在步骤1中设置的别名匹配。
目标:活动
单击“测试”。 Connectbot应该打开,您的命令应该在远程主机上执行。



步骤3:不过,通常可以在Tasker中使用此任务。

评论


有没有办法以编程方式定义连接,即通过Tasker和调用意图?

–党和
2011-09-18 23:37

对此我不确定。我不记得确切地是如何找到上述Intent信息的,但它基本上是一个标准的ssh URL。有一些工具可以调查应用程序的意图,但我还没有使用过。

–树
2011年9月19日在20:35

我可以补充一点,如果您删除了ConnectBot的默认设置并安装了另一个ssh客户端(例如BTEP),那么ssh URL会提示您使用哪个应用。这突显了以上内容是“ VIEW”和ssh格式的标准内容。在这种情况下,ConnectBot唯一特定的是最后的#alias。

–树
2011年9月19日在20:37

#3 楼

我知道这是一个旧线程,但是我想对BTEP的评论+1 data / com.magicandroidapps.bettertermpro / bin / ssh root@192.168.1.1

或生成一对密钥并使用公钥身份验证
/data/data/com/mag.androidapps.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

并使用TitaniumBackup备份/还原BTEP,这将保留权限,这意味着,如果刷新新的rom,则可以还原应用程序,并且所有脚本都可以再次使用

#4 楼

运行Android 4.4时,我已成功使用BotBrew Basil Experiment。 BotBrew Basil Experiment是基于apt-get的,因此在安装APK和引导程序后,我只是在根shell中执行apt-get install dropbear以安装SSH客户端(和服务器)。

#5 楼

安装终端仿真器和quickssh。 Quickssh还包括dropbear。不花钱,不应该花钱,这不应该因为这非常简单并且它基于dropbear。 .apps.sshdroid

find -name ssh user @ host

问题已解决

评论


看着那个程序(beserker的sshdroid),我只看到一个ssh服务器gui。然后,我通过jack尝试了终端仿真器,但未添加任何ssh命令。在游戏商店中寻找quickssh时,我没有看到它。我只看到quicksshd(由teslacoil提供),价格便宜,而且无疑不是ssh客户。

– barlop
2014年9月3日于12:31

#6 楼

终端仿真器完全支持脚本*。不要相信反对者。如果您还不熟悉BASH Shell脚本,则需要学习它。编写脚本并将其保存在SD卡上。用Term中的“ sh filename”运行它。

如果您要弄清楚与SSH有关的“脚本”是什么,我可能会给您更好的建议。

*(实际上是Android OS支持BASH脚本的终端仿真器仅授予您对Android Shell的访问权限,因此可以进行脚本编写)

评论


更新了问题。我不想用ssh调用脚本,我想从脚本中调用ssh。

–树
2010-09-23 12:49

正是我要的。同样,如果您想提供一些细节,我可能会提供更多帮助。

–ch3mi0n
2010-09-24于4:00

#7 楼

要从脚本中调用ssh,您需要做的就是设置ssh密钥。网络上有100万个操作方法,但Cyanogen Wiki上有一个页面可能更适合Android用户。设置密钥后,一般的ssh命令将如下所示:ssh -i / PATH / TO / KEY USER @ IP

您可以将其放入脚本中,运行它,然后您将可以登录到远程计算机。

但是我想这就是你想要做的。要仅在远程计算机上执行命令,只需将其添加在单引号中:ssh -i / PATH / TO / KEY USER @ IP'command'

该命令在远程计算机上执行命令而无需登录您可以运行。您可以运行带有选项,管道,重定向等的命令,但有时最好使它们保持简单。除了延迟之外,它看起来与在本地执行命令相同,并且可以使用相同的命令。如果它不起作用,请尝试将其放入脚本中,然后使用Locale Execute来运行该脚本。从/ system / xbin并在/ system / xbin / ssh处创建到Better Terminal Emulator的链接ssh二进制文件更可靠。 BTEP二进制文件位于/data/data/com.magicandroidapps.bettertermpro/bin/ssh

#8 楼

Botbrew是Android的软件包管理器,例如BSD的okpg或更新的版本,例如Debian的APT。挺棒的。它没有ssh客户端作为程序包,但是如果您习惯于构建自己的程序包,则看起来并不难。当您要构建其他C / C ++ / etc二进制文件和库时,它可用作工具链。

尽管这不是直接的答案,但对某些人来说可能很有用。

评论


真好它也在Play商店中:play.google.com/store/apps/details?id=com.inportb.botbrew

–树
13年4月9日在17:24

可悲的是,它看起来像botbrew.com已关闭,阻止了安装。

–树
13年4月9日在17:41

这很奇怪,因为我认为这些程序包托管在github上。

– Ehtesh Choudhury
13年4月9日在19:51

#9 楼

现在有一个名为Termux的终端,您可以在其中安装openssh。可在Google Play商店,F-Droid和Github上使用。

评论


请从Google Play关联该应用

– beeshyams
16年4月23日在10:53

#10 楼

AndFTP可以通过您配置的任何端口连接,因此我确定它可以通过SSH连接。但是我不确定编写脚本的用法有多容易。我一直在自己的托管服务器上使用该应用程序,而且效果很好。我经常使用该应用来执行我懒于使用ADB进行的操作。

评论


AndFTP很棒。终端仿真器可编写脚本吗?

–树
2010-09-21 18:36

我不这么认为,除非没有其他应用程序。如上所述,Tasker可能是解决此问题的方法。

–网站
2010-09-21 18:56

#11 楼

对Tasker使用ssh插件?则不需要root或ssh二进制文件。

评论


叫一个?您的答案可能会有所帮助:)

– Izzy♦
2013年4月3日17:43

有适用于Tasker的“ SSH插件已付费”,但它已经过时并且不再开发。错误处理几乎不存在,因此它只是ssh而已。但这有效。

–法郎
18/12/11在13:18

#12 楼

如果简单的ssh客户端对您来说很有趣,我是在Android-NDK仿生库drobpear-ssh-client-only下制作的。 only.tgz
源和ftp://ftp.simtreas.ru/pub/my/dropbear/ssh二进制

评论


不幸的是,这不是一个通用的答案,只能在x86 / ARM / MIPS之一(可能是ARM)上运行。而且链接的内容很可能会在某个时间消失。大多数自定义ROM已经包含一个正常工作的cmdline ssh客户端。

–ce4
2012年9月13日在12:01