Há algum cliente de linha de comando disponíveis para telefones Android enraizados? -- ssh campo com command-line camp android Relacionado O problema

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


24
vote

problema

português

Eu, claro, tenho connectbot, mas estou procurando algo que eu possa script.

Editar: Para esclarecer aqui, não estou interessado em executar scripts de um terminal. O que eu quero fazer é executar um comando ssh de maneira automatizada / agendada. Tasker and Loce Execute são o equivalente do cron, tudo que eu preciso é o comando 'ssh' para executar de o script.

english

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.

     
 
 

Lista de respostas

12
 
vote
vote
Melhor resposta
 

Você pode instalar o emulador de terminal do Google. Alternativamente, há o melhor emulador terminal pro . Eu tentei o emulador do terminal em um telefone não enraizado e parecia funcionar bem.

Melhor Emulador do Terminal Pro inclui o Dropbear SSH Client , que pode ser lançado a partir do linha de comando ou através de um lançador. mais informações dos autores .

 

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

Desde a minha pergunta original foi sobre um binário ssh, e há uma resposta para isso, eu vou aceitar essa resposta. No entanto, há outra maneira de fazer o que eu queria fazer, meio que poderia ser interessante para alguém algum dia.

Tasker + ConnectBot pode ser usado para executar o controle remoto arbitrário (ou local, eu acho, mas a locale Execute é melhor para isso) comandos em uma programação.

Etapa 1: Configure sua conexão no ConnectBot.

  • Você pode ter conexões duplicadas no ConnectBot, desde que tenham aliases diferentes. Você tem que renomear um primeiro (longe do usuário @ host) para criar o segundo. Pressione e selecione "Editar Host" para executar essas alterações.
  • Você provavelmente deseja configurar uma chave SSH sem uma senha para que você possa usar isso para automação.
  • Uma vez que a conexão realmente funciona, você pode usar "Automação pós-login" para adicionar os comandos remotos que gostaria de executar. Certifique-se de que haja uma linha em branco no final, de modo que entrar é enviada após o último comando. Use ENTER ou; para separar comandos. Eu sugiro usar algo como "echo hello" como um teste até que você tenha certeza de que as coisas estão funcionando e "saída" no final, se você não quiser deixar a conexão aberta.
  • Teste isso isoladamente.

Etapa 2: Crie uma tarefa do Tasker para chamar ConnectBot.

  • Crie uma nova tarefa no Tasker.
  • Adicione uma ação. Do misc, selecione "Intenção de ação"
  • os campos são:
    • ação: android.intent.action.View
    • gato: padrão
    • dados: SSH URL, na forma de "ssh: // user @ host / # alias" (sem as cotações). O alias, usuário e hospedeiro aqui deve corresponder ao alias que você configurou na etapa 1.
    • alvo: atividade
    • clique em teste. O ConnectBot deve abrir e seus comandos devem ser executados no host remoto.

Passo 3: Use esta tarefa no Tasker, no entanto, você normalmente.

 

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

Eu sei que é um fio antigo, mas queria +1 o comentário sobre btep

Eu também estou usando o Binário SSH do BTEP embora eu apenas chamo de seu caminho em vez de vinculá-lo /data/data/com.magicandroidrapps.bettermpro/bin/ssh root@192.168.1.1

ou gerar um par de chaves e usar a autenticação de chave pública /data/data/com.magicanandroidrapps.bettertermpro/bin/ssh -i /data/data/com.magicandroidapps.bettertermpro/home/.ssh/id_rsa -l raiz 192.168.1.1

Eu uso o comando acima do SL4A R4 em vários scripts e funciona bem :)

Antes que eu pudesse fazer isso eu precisava de chmod a + x /data/data/com.magicandroidapps.bettertermpro/home/.ssh

Quando isso for feito e você backup / restaurar btep com titaniumbackup as permissões são mantidas, se você piscar um novo ROM, você poderá simplesmente restaurar os aplicativos e todos os seus scripts funcionarão novamente

 

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

Eu usei com sucesso Botture Basil Experimental < / a> ao executar o Android 4.4. Botbrew Basil Experimental é baseado no apt-get, então após a instalação e bootstraping eu acabei de fazer apt-get install dropbear em um shell raiz para instalar o cliente ssh (e servidor).

 

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

Instale o emulador do terminal e o quicksh. Quicksh também inclui dropbear. Não custa dinheiro, o que não deve porque isso é simplesmente simples e é baseado no dropbear.

https://play.google.com/ Loja / Apps / detalhes? ID = Berserker.android.apps.sshdroid

find -name ssh user @ host

problema resolvido

 

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

Emulador terminal suporta absolutamente scripts *. Não acredite nos sayers não. Você precisará aprender Bash Shell Scripting, se você ainda não estiver familiarizado com isso. Escreva um script e salve-o no seu cartão SD. Corra com "SH Filename" do termo.

Se você esclarecer o que é que você quer "script" ter que fazer com ssh, provavelmente posso dar uma recomendação melhor.

* (Na verdade, o sistema operacional Android que suporta scripts de bash, o emulador de terminal apenas concede ao acesso ao Android, portanto, o script é inerentemente possível)

 

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

Para ligar para o ssh de um script, tudo o que você precisa fazer é configurar chaves SSH. Há um milhão de how-to Tos na web, mas há uma página no wiki de cyanogen que pode ser mais adequado para usuários do Android. Depois de configurar as teclas, seu comando General SSH seria algo assim: ssh -i / caminho / para / key user @ ip

Você pode colocar isso em um script, executá-lo e você estará logado na máquina remota.

Mas aqui está o que eu acho que você está querendo fazer. Para executar apenas um comando em um computador remoto, basta adicioná-lo em citações simples: ssh -i / caminho / para / key user @ ip 'comando'

Isso executa o comando na máquina remota sem registrar você. Você pode executar comandos com opções, tubos, redirecionamentos etc., mas às vezes é melhor mantê-los simples. Exceto pelo atraso, parece a execução do (s) comando (s) localmente e pode ser usado o mesmo.

Executar de localidade pode ser exigente sobre quais comandos serão executados. Se não funcionar, tente colocá-lo em um script e usar a locale Execute para executar o script.

Também tive problemas com o binário ssh que está no telefone e descobriu que movê-lo de / System / Xbin e criar um link em / sistema / xbin / ssh para o melhor emulador de terminal ssh binário é mais confiável. O BTEP Binary está em /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

botrew é um gerente de pacotes para o Android, nos gostos de okpg Para BSD ou mais recentemente, como APT para o debian. Muito bom. Ele não tem um cliente ssh como um pacote, mas não parece muito difícil colocar se você estiver acostumado a construir seus próprios pacotes. E pode ser útil como uma chafarina de ferramentas para quando você deseja criar outros binários e bijuários C / C ++ / etc.

Então, embora esta não seja uma resposta direta, pode ser útil para algumas pessoas saberem.

 

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

Agora, há um terminal chamado Termux que você pode instalar o openssh. Disponível em Google Play Store , f-droid e 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 pode se conectar em qualquer porta que você configure, então eu tenho certeza que ele pode se conectar sobre o SSH. Mas não tenho certeza de quão fácil é o uso de script disso. Eu uso o aplicativo sozinho o tempo todo para o meu servidor de hospedagem e funciona muito bem.

Não tenho certeza se você pode ssh com emulador de terminal, mas você poderia experimentá-lo também. Eu uso esse aplicativo com freqüência para fazer as coisas que estou com preguiça de fazer com 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

Use um plugin SSH para Tasker? Não precisa de raiz ou ssh binário então.

 

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

 
 
   
   
-3
 
vote

Se o cliente SSH simples for interessante para você, feita sob a biblioteca biônica do Android-SSH-SHOP apenas. ftp://ftp.simtrees.ru/pub/my/dropbear /dropbear-ssh-only.tgz Sourse e ftp://ftp.simtrees.ru/pub/my/dropbear/ssh Binário

 

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

 
 
 
 

Perguntas relacionadas

3  Instalar split apk manualmente  ( Install split apk manually ) 
Recentemente eu tenho que saber uma coisa chamada Split APKS, e encontrei as fatias como arquivos APK inválidos, apenas a base é. Infelizmente, isso significa...

7  Como alterar o "modo de rede preferencial" usando ADB sem reinicialização?  ( How to change preferred network mode using adb without reboot ) 
Estou tentando mudar o meu telefone (CM 12, estoque 4.2, tanto enraizado) Modo de rede preferido de "GSM / WCDMA" (0) para "somente WCDMA" (2) e vice-versa (p...

1  É possível instalar "iproute2" no Android?  ( Is it possible to install iproute2 on android ) 
Eu tentei usar git clone na página do GoogleSource, mas não fez muito. Eu quero usar o comando abcdefghgjklmnabcdefghijklmn3 no pacote, mas não sei como i...

24  É possível ativar a configuração do Android "USB Tethering" da linha de comando?  ( Is it possible to activate the usb tethering android setting from the command ) 
Eu gostaria de ativar "USB Tethering" de dentro de um script bash, por isso há alguma possibilidade de executar uma linha de comando com adb shell para alte...

3  Como instalar pacotes de comandos de terminais adicionais para dispositivos enraizados?  ( How to install bundles of additional terminal commands for rooted devices ) 
Eu enraizei um dispositivo HTC Wildfire s recentemente e piscou um Android 4.1.2 AOKP Jelly Bean Custom ROM. Um benefício é que eu posso usar o terminal agora...

0  Como corrigir "Mount: 'Remount' -> '/ System': Nenhum arquivo ou diretório"?  ( How to fix mount remount system no such file or directory ) 
angler:/ # mount -o rw, remount /system mount: 'remount'->'/system': No such file or directory 1|angler:/ # Quando eu tento no Kali Linux no meu telefone...

3  Onde devo instalar a Toybox?  ( Where should i install toybox ) 
Eu possuo um raízes Samsung Galaxy S Relay 4G Running Stock Android 4.1.2. Se você tem o Android 6.0 "Marshmallow" ou melhor, então você tem Toybox . Este ...

9  Como encontrar o nome do caminho da partição swap no cartão SD?  ( How to find the pathname of the swap partition on sd card ) 
como este < / a> adverte, você não deve habilitar a troca na partição errada ou você pode destruir seu telefone: . OK antes de ir mais longe! Os telefones ...

1  Como faço para investigar o uso da memória?  ( How do i investigate the memory usage ) 
Eu tenho um micromax A74 com (enraizado) Android 4.2.2. Recentemente, enfrentei o acidente de alguma aplicação e comecei a analisar o uso da RAM. Configuraç...

24  Há algum cliente de linha de comando disponíveis para telefones Android enraizados?  ( Are there any command line ssh clients available for rooted android phones ) 
Eu, claro, tenho connectbot, mas estou procurando algo que eu possa script. Editar: Para esclarecer aqui, não estou interessado em executar scripts de um t...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.