是否有任何命令行SSH客户端可用于rooted Android手机? -- ssh 领域 和 command-line 领域 android 相关 的问题

Are there any command line SSH clients available for rooted Android phones?


24
vote

问题

中文

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

编辑:要澄清这里,我对来自终端的脚本不感兴趣。我要做的是以自动/计划方式运行SSH命令。 tasker和locale执行是Cron的等同器,我只需要的是'ssh'命令从 脚本运行

英文原文

I of course have ConnectBot, but I'm looking for something I can script.

Edit: To clarify here, I'm not interested in running scripts from a terminal. What I want to do is run an SSH command in an automated/scheduled manner. Tasker and Locale Execute are the equivalent of cron, all I need is the 'ssh' command to run from the script.

     
 
 

回答列表

12
 
vote
vote
最佳答案
 

您可以从谷歌安装终端仿真器或者,存在更好的终端仿真器pro 。我尝试了在非生根手机上的终端仿真器,似乎工作正常。

更好的终端仿真器pro包括 dropbear ssh client ,可以从中启动命令行或通过发射器。 来自作者的更多信息

 

You can install the Terminal Emulator from google. Alternatively there is the Better Terminal Emulator Pro. I tried the Terminal Emulator on a non-rooted phone and it seemed to work fine.

Better Terminal Emulator Pro includes the dropbear ssh client, which can be launched from the command line or via a launcher. More info from the authors.

 
 
         
         
17
 
vote

因为我的原始问题是关于一个ssh二进制文件,并且有一个答案,我会接受这个答案。但是,还有另一种方法可以做我想做的事情,有点可能对某人有趣。

tasker + connectbot可用于执行任意远程(或本地,我猜,但是当时的区域设置更好)命令。

步骤1:在ConnectBot中设置连接。

  • 您可以在ConnectBot中具有重复连接,只要它们具有不同的别名即可。您必须先重命名一个(远离用户@主机)以创建第二个。长按并选择"编辑主机" 以执行这些更改。
  • 您可能希望在没有密码的情况下设置一个SSH密钥,以便您可以使用此操作以实现自动化。
  • 一旦连接实际工作,您可以使用"登录后自动化" 添加要运行的远程命令。确保最后有一个空白行,以便在上次命令后发送输入。使用Enter或;分开命令。我建议使用像"Echo Hello" 这样的东西作为测试,直到您确定事情正在工作,并且如果您不想留下连接,则"退出" 。
  • 在隔离中测试这一点。

步骤2:创建一个Tasker任务以调用ConnectBot。

  • 在Tasker中创建一个新任务。
  • 添加一个动作。来自MISC,选择"动作意图"
  • 字段是:
    • action:android.intent.action.view
    • cat
    • cat:默认
    • 数据:SSH URL,以"SSH://用户@ host /#alias" 的形式(没有引号)。这里的别名,用户和主机匹配在步骤1.
    • 中设置的别名
    • 目标:活动
    • 单击测试。 ConnectBot应该打开,您的命令应在远程主机上执行。

步骤3:在Tasker中使用此任务,但您通常会使用此任务。

 

Since my original question was about an ssh binary, and there is an answer for that, I'll accept that answer. However, there is another way to do what I wanted to do, kinda, that might be interesting to someone some day.

Tasker + ConnectBot can be used to execute arbitrary remote (or local, I guess, but Locale Execute is better for that) commands on a schedule.

Step 1: Set up your connection in ConnectBot.

  • You can have duplicate connections in ConnectBot as long as they have different aliases. You have to rename one first (away from user@host) in order to create the second. Long Press and select "Edit Host" to perform these changes.
  • You probably want to set up an ssh key without a password so that you can use this for automation.
  • Once the connection actually works, you can use "Post-login automation" to add the remote commands you would like to run. Make sure there is a blank line at the end so that enter is sent after your last command. Use enter or ; to separate commands. I suggest using something like "echo hello" as a test until you are sure things are working, and "exit" at the end if you don't want to leave the connection open.
  • Test this in isolation.

Step 2: Create a Tasker Task to call connectbot.

  • Create a new Task in Tasker.
  • Add an Action. From Misc, select "Action Intent"
  • The fields are:
    • Action: android.intent.action.VIEW
    • Cat: Default
    • Data: ssh url, in the form of "ssh://user@host/#alias" (without the quotes). The alias, user and host here must match the alias you set up in Step 1.
    • Target: Activity
    • Click Test. Connectbot should open and your commands should execute on the remote host.

Step 3: Use this Task in Tasker however you would normally.

 
 
     
     
5
 
vote

我知道这是一个旧的线程,但想要+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/d_rsa -l root 192.168.1.1

我在各种脚本中使用来自sl4a r4的上面的命令,它可以正常工作:)

在我可以做到这一点之前,我需要chmod a + x / data/data/com.magicandroidapps.bettertermpro/home/.ssh

一旦完成,您将使用titaniumbackup备份/恢复btep权限,如果您刷新新ROM,则只需恢复应用程序,您的脚本将再次工作

 

I know it's an old thread but wanted to +1 the comment about BTEP

I'm also using BTEP's ssh binary though I just call it from it's path instead of linking it /data/data/com.magicandroidapps.bettertermpro/bin/ssh root@192.168.1.1

or generate a pair of keys and use public key authentication /data/data/com.magicandroidapps.bettertermpro/bin/ssh -i /data/data/com.magicandroidapps.bettertermpro/home/.ssh/id_rsa -l root 192.168.1.1

I use the above command from SL4A r4 in various scripts and it works fine :)

before I could do this I needed to chmod a+x /data/data/com.magicandroidapps.bettertermpro/home/.ssh

once this is done and you backup/restore BTEP with TitaniumBackup the permissions are kept this means if you flash a new rom you can just restore the apps and all your scripts will work again

 
 
5
 
vote

我已成功使用 botbreg basil实验< / a>运行Android 4.4。 BotBroge Basil实验基于APT-GET,因此在安装APK和引导后,我刚刚在根shell中执行了 abcdefghijklmnapt-get install dropbear 来安装ssh客户端(和服务器)。

 

I have successfully used BotBrew Basil Experimental when running Android 4.4. BotBrew Basil Experimental is based on apt-get so after installing APK and bootstraping I just did apt-get install dropbear in a root shell to install SSH client (and server).

 
 
3
 
vote

安装终端仿真器和Quickssh。 Quickssh还包括Dropbear。不花掉你的钱,它不应该因为这是经过多大的简单,它基于Dropbear。

https://play.google.com/商店/应用程序/详细信息?id = berserker.android.apps.sshdroid

find -name ssh 用户@ host

问题解决了

 

Install terminal emulator and quickssh. Quickssh also includes dropbear. Does not cost you money, which it should not because this is surpassingly simple and it's based on dropbear.

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

find -name ssh user@host

Problem solved

 
 
 
 
2
 
vote

终端仿真器绝对支持脚本*。不要相信Nay-Sayers。如果您尚未熟悉它,您需要学习Bash Shell Scripting。编写脚本并将其保存在SD卡上。从术语开始使用"sh filename" 。

如果你澄清你想要的"脚本" 与ssh有关,我很可能会给你一个更好的建议。

*(它实际上是支持Bash脚本的Android操作系统,终端仿真器只是授予您访问Android shell的授予,因此脚本本质是可能的)

 

Terminal Emulator absolutely supports scripts*. Don't believe the nay-sayers. You will need to learn BASH shell scripting, if you're not already familiar with it. Write a script and save it on your SD card. Run it with "sh filename" from Term.

If you clarify what it is you want to "script" having to do with SSH, I can likely give you a better recommendation.

*(It's actually the Android OS that supports BASH scripts, Terminal Emulator just grants you access to the Android shell, therefore scripting is inherently possible)

 
 
   
   
2
 
vote

从脚本调用ssh,您需要做的就是设置SSH键。网络上有一百万次TO-TOS,但是在Cyanogen Wiki上有一个页面,可能更适合Android用户。设置键后,您的常规SSH命令看起来像这样:ssh -i / path / to / key user @ ip

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

但这是我认为你想要做的事情。仅在远程计算机上执行命令,只需在单引号中添加它:ssh -i / path / to / key user @ ip'命令'

在未记录远程计算机上执行命令,无需记录。您可以使用选项,管道,重定向等运行命令,但有时会更好地保持它们。除了延迟之外,它看起来与在本地执行命令并可以使用相同。

locale执行可以挑剔它将运行的命令。如果它不起作用,请尝试将其放入脚本并使用语言环境执行运行脚本。

此外,我在手机上有SSH二进制文件的问题,发现从/系统/ Xbin移动它并在/系统/ xbin / ssh中创建链接到更好的终端仿真器SSH二进制更可靠。 BTEP二进制文件位于/data/data/com.magicandroidapps.bettertermpro/bin/ssh
 

To call ssh from a script, all you need to do is set up ssh keys. There are a million how-tos on the web, but there's a page on the Cyanogen wiki that might be more suited to Android users. Once you set up keys, your general ssh command would look something like this: ssh -i /PATH/TO/KEY USER@IP

You can put that in a script, run it, and you will be logged in to the remote machine.

But here's what I think you're wanting to do. To only execute a command on a remote computer, just add it in single quotes: ssh -i /PATH/TO/KEY USER@IP 'command'

That executes the command on the remote machine without logging you in. You can run commands with options, pipes, redirects etc, but it's sometimes better to keep them simple. Except for the delay, it looks the same as executing the command(s) locally and can be used the same.

Locale Execute can be picky about what commands it will run. If it doesn't work, try putting it in a script and using Locale Execute to run the script.

Also, I have had problems with the ssh binary that is on the phone and found that moving it from /system/xbin and creating a link at /system/xbin/ssh to the Better Terminal Emulator ssh binary is more reliable. The BTEP binary is in /data/data/com.magicandroidapps.bettertermpro/bin/ssh

 
 
2
 
vote

botbrew 是Android的包管理器 okpg 对于BSD或更新,例如 APT for debian。挺棒的。它没有一个ssh客户端作为包,但如果您用于构建您自己的包,则它看起来并不太难。它可能是一个有用的工具链,当您想要构建其他C / C ++ / ETC二进制文件和库时。

所以但尽管这不是直接答案,但有些人可以了解这一点。
 

Botbrew is a package manager for Android, in the likes of okpg for BSD or more recently, like APT for Debian. Pretty nice. It doesn't have an ssh client as a package, but it doesn't look too hard to put in if you're used to building your own packages. And it could be useful as a toolchain for when you want to build other C/C++/etc binaries and libraries.

So albeit this isn't a direct answer, it may be useful for some people to know about.

 
 
     
     
2
 
vote
现在,现在有一个名为termux的终端,您可以易于安装openssh。在 Google Play Store , f-droid ,和 github 。
 

Now there is a terminal called Termux that you can apt install openssh in. Available on Google Play Store, F-Droid, and Github.

 
 
 
 
-1
 
vote

ANDFTP可以通过您配置的任何端口连接,因此我确定它可以通过SSH连接。但我不确定脚本使用它是多么容易。我一直在我的托管服务器使用应用程序,它很棒。

不确定是否可以使用终端仿真器SSH,但您也可以尝试。我经常使用那个应用程序来做事情,我懒得与adb做。

 

AndFTP can connect over any port you configure so I'm sure it could connect over SSH. But I'm not sure how easy it is to script usage of it. I use the app myself all the time for my hosting server and it works great.

Not sure if you can SSH with Terminal Emulator, but you could try it too. I use that app frequently for doing things I'm too lazy to do with ADB.

 
 
   
   
-1
 
vote

使用ssh插件for tasker?那么不需要root或ssh二进制。

 

Use an ssh plugin for Tasker? Don't need root or ssh binary then.

 
 
   
   
-3
 
vote

如果简单的ssh客户端对您有趣,我在android-ndk仿生库drobpear-ssh-client下制作。 ftp://ftp.simtreas.ru/pub/my/dropbear /dropbear-ssh-only.tgz 顺序和 ftp://ftp.simtreas.ru/pub/my/dropbear/ssh二进制

 

If the simple ssh client is interesting to you, I made under Android-NDK Bionic library 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

 
 
 
 

相关问题

0  ssh到ubuntu桌面  ( Ssh to ubuntu desktop ) 
我已经使用动态DNS服务(NoIP)在Home上的Ubuntu桌面上设置了SSH服务器。我有一个Wi-Fi Android平板电脑运行Android版本4.4.2。在我的平板电脑上,我可以连接到其他SSH服务器,例如我的大学服务器。但是,我不能直接从我的平板电脑连接到我的桌面;每次尝试超时。但我能够连接到我的大学的服...

4  无法在Android中添加主机到“known_hosts”  ( Cannot add host to known hosts in android ) 
我正在使用ssh从我的Android手机连接到我的NAS。 私钥在我的电脑上生成,然后放在手机的SD卡文件夹中。 所以我正在使用身份标志告诉SSH在哪里找到密钥文件,因此 ssh -i /storage/sdcard/key -p 1000 admin@192.168.10.10 每次尝试连接时,我都会收到...

16  是否有可能使用Android设备作为SSH的远程计算机作为X11服务器?  ( Is it possible to use an android device as x11 server for a remote machine over ) 
当我的台式电脑已启动时,我可以用我的笔记本连接到它,即使通过互联网(我设置了我的路由器将ssh转发到我的台式计算机)。我的桌面计算机运行GNU / Linux(Ubuntu Distro),所以我可以用x终端使用它。我的笔记本也经营Ubuntu。我只需要 ssh -X desktop.ip.addr ,然后我可以在桌...

6  从远程计算机运行Android应用程序  ( Run android application from remote computer ) 
我在stackoverflow上问了这个问题,但我认为应该问它... 我需要通过ssh从远程计算机(在同一网络中)运行我的android应用程序(不使用adb)。我该怎么做? 谢谢, 贝利曼 ...

6  在Android上的SSH和Vim / LaTex / C ++最舒适的方法是什么?  ( What is the most comfortable way to ssh and vim latex c on android ) 
如果我应该得到机器人x,我就是辩论。我想用它来工作,意思是乳胶和C ++中的代码。我使用vim。 我知道它可以使用connectbot。但是可能并不意味着我可以在咖啡店替代笔记本电脑。是否有人使用蓝牙键盘与Android设备,如此幸福( http://www.fourhourworkweek.com/blog/201...

5  CM7:如何在同一网络上启用无密码SSH登录?  ( Cm7 how to enable passwordless ssh login on same network ) 
我正在运行cyanogenmod 7,我想在我的网络上启用密码ssh登录我的主机计算机,但只有在手机上通过同一网络访问服务器时才。我应该/哪里应该把我的.ssh / known_hosts文件置于启用这个? ...

5  通过sshdroid(或adb shell)运行tasker任务  ( Running a tasker task via sshdroid or adb shell ) 
我正在尝试通过sshdroid从adb shell手动运行任务任务。我是 在Putty中运行以下内容(Windows SSH客户端): am broadcast -a net.dinglisch.android.tasker.action_task -es task_name 沉默 我得到: 广播:意图{ac...

6  Android键盘并重新映射Ctrl键  ( Android keyboard and remapping the ctrl key ) 
我有一个三星Galaxy 10.1运行Android版本4.1.2。我正在使用SSH来远程连接到我的主机,运行Ubuntu 12.04 LTS。一旦我连接,我就在Emacs 24.3中完成了所有工作。我还有一个蓝牙键盘。 我的问题是重新映射 caps lock 键,用作 ctrl 键。我通过更改终端选项中的设置与我的...

1  在密钥安全SSH连接上转发端口  ( Forward port over key secured ssh connection ) 
我在桌面上运行个人Web服务。在我的笔记本电脑上,我使用 ssh -L 打开它的连接,如下所示: ssh -L <port>:<remote host>:<port> 对于Mac和Linux而言,它可以很好。如何在Android上做同样的事情? ...

26  自动连接到Wi-Fi节点,但通过加密路由所有内容  ( Automatically connect to wi fi nodes but route everything through encryption ) 
与我关于VPNS 的问题,有没有办法让我的手机自动连接到未加密的接入点,但通过家庭网络路由所有流量? 这将是一种类似的间歇性,但是自由,数据计划的替代方案,只需同步我的电子邮件并且在看到开放接入点时会自动同步,但没有应用程序发送密码 cookie 在清除a htth://en.wikipedia.org/wiki/r...

2  来自Android的SSHFS到NAS  ( Sshfs from android to nas ) 
我正在尝试通过 abcdefghijklmnabcdefghijklmnobcdefghijklmn0 安装到我的NAS上的文件夹上安装任何文件夹。目标将是例如 /sdcard/My Documents/My Recordings 文件夹设置,因此它几乎无限制了。我安装了通过 adb shell 连接。在 /data...

1  通过连接机器人的互联网  ( Ssh internet through connect bot ) 
是否有可能从Internet应用程序转发到Connect Bot转发端口中的所有流量? ...

1  在Android中是否有任何SSH操作系统支持?  ( Is there any ssh os support in android ) 
我正在阅读文章 jolla和ssh推送旗鱼作为"欧洲替代" 移动OS 。 我在手机中使用了SSH的第三方应用程序,但希望有支持操作系统。 如何在Android中获取OS支持的SSH? ...

1  如何在Cyanogenmod 7上修复PWD(打印工作目录)?  ( How do i fix pwd print working directory on cyanogenmod 7 ) 
我想使用winscp通过无线将数据传输到我的手机。我已经在手机上启用了DaveBear。 Winscp连接,但在尝试 pwd 之后崩溃。使用Putty登录,我可以看到 pwd 返回一个空白行: /data/dropbear # pwd /data/dropbear # which pwd /system/xbi...

45  有没有一些SSH服务器用于Android?  ( Is there some ssh server for android ) 
锁定。这个问题及其答案是锁定,因为问题是off-top,但具有历史意义。它目前没有接受新的答案或互动。 是有android的ssh服务器(例如openssh for ubuntu),这将允...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.