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.

Inglês Original

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

6  Teclado Android e remapeando a tecla CTRL  ( Android keyboard and remapping the ctrl key ) 
Eu tenho um Samsung Galaxy 10.1 executando o Android versão 4.1.2. Eu estou usando o ssh para conectar remotamente à minha máquina principal que executa o Ubu...

45  Existe algum servidor SSH para o Android?  ( Is there some ssh server for android ) 
. bloqueado . Esta questão e suas respostas são bloqueado Porque a questão é off-tópico, mas tem significado histórico. Atualmente não está aceit...

1  Porta para a frente sobre conexão SSH segura-chave  ( Forward port over key secured ssh connection ) 
Eu executo um serviço da Web pessoal na minha área de trabalho. No meu laptop eu uso ssh -L para abrir uma conexão com ela assim: ssh -L <port>:<remote h...

1  Como faço para consertar o PWD (diretório de trabalho de impressão) no CyanogenMod 7?  ( How do i fix pwd print working directory on cyanogenmod 7 ) 
Eu quero usar o Winscp para transferir dados para o meu telefone mais sem fio. Eu permiti dropbear no meu celular. O Winscp se conecta, mas falha depois de te...

5  CM7: Como habilitar o login ssh sem senha na mesma rede?  ( Cm7 how to enable passwordless ssh login on same network ) 
Eu estou executando o CyanogenMod 7 e gostaria de permitir ativar o login SSH do Soma para o meu computador principal do Linux na minha rede, mas somente quan...

26  Conectar-se automaticamente a nós Wi-Fi, mas rotear tudo através de criptografia  ( Automatically connect to wi fi nodes but route everything through encryption ) 
Relacionado a Minha pergunta sobre VPNs , existe alguma maneira de fazer meu telefone se conectar automaticamente a pontos de acesso não criptografados, Mas ...

1  Existe algum suporte do SSH OS no Android?  ( Is there any ssh os support in android ) 
Eu estou lendo o artigo Jolla e SSH Push Sailfish seguro como "Alternativa Europeia" OS Móvel . Eu usei pedidos de terceiros para SSH no meu telefone, mas go...

0  Ssh para ubuntu desktop  ( Ssh to ubuntu desktop ) 
Eu configurei um servidor ssh no meu desktop do Ubuntu em casa usando um serviço DNS dinâmico (NOIP). Eu tenho um tablet Android somente Wi-Fi executando o An...

6  Execute o aplicativo Android do computador remoto  ( Run android application from remote computer ) 
Eu fiz esta pergunta em Stackoverflow, mas percebi que deveria ser perguntado aqui ... Eu preciso executar meu aplicativo Android do computador remoto (na m...

16  É possível usar um dispositivo Android como servidor X11 para uma máquina remota sobre SSH?  ( Is it possible to use an android device as x11 server for a remote machine over ) 
Quando meu computador desktop acabar, posso me conectar com o meu notebook, mesmo na Internet (eu configurei meu roteador para encaminhar o SSH para o meu com...

1  SSH Internet através do Bot Connect  ( Ssh internet through connect bot ) 
É possível encaminhar todo o tráfego do aplicativo Internet Over Connect Bot encaminhou porto? ...

5  Executando uma tarefa do Tasker via sshdroid (ou shell adb)  ( Running a tasker task via sshdroid or adb shell ) 
Estou tentando executar uma tarefa de tarefa manualmente do shell adb, via sshdroid. Eu estou Executando o seguinte em Putty (Windows SSH Client): am broad...

4  Não é possível adicionar host para "conhecedor_hosts" no Android  ( Cannot add host to known hosts in android ) 
Estou conectando do meu aparelho Android ao meu NAS, usando o SSH. A chave privada foi gerada no meu PC e depois colocada na pasta do cartão SD do telefone. E...

6  Qual é a maneira mais confortável para SSH e VIM / LATEX / C ++ no Android?  ( What is the most comfortable way to ssh and vim latex c on android ) 
Estou debatendo se eu tiver droid x. Eu gostaria de usá-lo para o trabalho, significando látex e código em C ++. Eu uso vim. Eu sei que isso é possível com ...

2  Sshfs do Android para NAS  ( Sshfs from android to nas ) 
Estou tentando obter qualquer pasta no armazenamento interno de um HTC M7 para ser montado por meio de sshfs para uma pasta no meu NAS. O objetivo seria ter...




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


Licensed under cc by-sa 3.0 with attribution required.