根ざしたAndroid携帯電話で利用可能なコマンドラインSSHクライアントはありますか? -- ssh フィールド と command-line フィールド android 関連 問題

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


24
vote

問題

日本語

私はコネコンボットを持っていますが、私はスクリプトできるものを探しています。

編集:ここで説明するには、 スクリプトをターミナルから興味を持っていません。私がやりたいことは、自動化/スケジュールされた方法でsshコマンドを実行することです。 TaskerとLocale ExecuteはCronと同じです。

英語

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は、スケジュール上のコマンドで任意のリモート(またはローカル、ロケールEXECUTEが優れています)のコマンドを実行するために使用できます。

ステップ1:接続をConnectBotで設定します。

  • それらが異なるエイリアスを持つ限り、ConnectBotで接続を重複させることができます。 2番目を作成するには、最初の名前を最初に(user @ホストから離して)名前を変更する必要があります。長押しして「ホストの編集」を選択してこれらの変更を実行します。
  • パスワードなしでSSHキーを設定して、これを自動化に使用できるようにします。
  • 接続が実際に動作すると、「ログイン後自動化」を使用して実行したいリモートコマンドを追加できます。最後のコマンドの後にEnterが送信されるように、最後に空白行があることを確認してください。 Enterを使用するか、;コマンドを区切るために。私はあなたが作業していることが確実になるまで、 "Echo Hello"のようなものを使って、接続を開いたままにしたくない場合は終わりに "Exit"を使ってください。
  • これを分離でテストします。

ステップ2:ConnectBotを呼び出すためのタスクタスクを作成します。

  • Taskerで新しいタスクを作成します。
  • アクションを追加します。その他から、「アクションの意図」を選択
  • フィールドは次のとおりです。
    • アクション:android.intent.action.view
    • cat:デフォルト
    • data:ssh url、 "ssh:// user @ host /#alias"(引用符なしで)の形式です。ここでのエイリアス、ユーザー、およびホストは、手順1で設定したエイリアスと一致する必要があります。
    • ターゲット:アクティビティ
    • テストをクリックします。 ConnectBotは開くべきであり、コマンドはリモートホスト上で実行されるべきです。

ステップ3:タスクーでこのタスクを使用するただし、通常は正常になります。

 

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

私はそれが古いスレッドだがBTEP

についてのコメントを+1したいと思ったことを知っています

私はBTEPのSSHバイナリも使用していますが、リンクするのではなくそのパスからそれを呼び出すだけです。 /data/data/com.magicandroidapps.bettertermpro / bin/ssh root@192.168.1.1

または一対のキーを生成し、公開鍵認証を使用する /data/data.bettertertermpro / bin/ssh -i /data/data/com.magicandroidapps.bettertertermpro / 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をフラッシュした場合に新しい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

私は Botebrew Basil実験< / a> Android 4.4を実行しているとき。 Botebrew Basilの実験は、APKとブートストリングをインストールした後、SSHクライアント(およびサーバー)をインストールするためのルートシェルで 99887766554330 を使用しました。

 

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.sshroid

<コード> find -name ssh user @ 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ファイル名」で実行してください。

あなたがそれがあなたがSSHとしなければならないことを「スクリプト」したいのかを明確にするならば、私はあなたにより良い推薦を与える可能性があります。

*(実際にはBashスクリプトをサポートするAndroid OSです。ターミナルエミュレータは、Androidシェルへのアクセスにアクセスするだけで、スクリプティングは本質的に可能です)

 

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キーを設定するだけです。 Web上で百万のHOW-TOがありますが、Androidユーザーにもっと適している可能性があるシアノーゲンWikiのページがあります。キーを設定したら、一般的なsshコマンドは次のようになります.ssh -i / path / to / key user @ ip

スクリプトにそれを実行することができ、リモートマシンにログインすることができます。

しかし、私がやりたいと思っていると思います。リモートコンピュータでのコマンドのみを実行するには、単一引用符で追加するだけです.ssh -i / path / / key user @ ip 'コマンド'

ログインせずにリモートマシン上のコマンドを実行します。オプション、パイプ、リダイレクトなどでコマンドを実行できますが、それらを簡単に保つことはより良いです。遅延を除いて、ローカルにコマンドを実行するのと同じように見え、同じものに使用できます。

ロケール実行は、実行されるコマンドについて一目瞭然になることがあります。機能しない場合は、スクリプトに入れてロケール実行を使用してスクリプトを実行してみてください。

また、電話機のSSHバイナリに問題があり、/ system / xbinから移動し、/ system / xbin / ssh on / system / 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

href="https://githubs.com/jyio/botbrew" rel="nofollow"> botbrew 9988776665544330 ののパッケージマネージャです。 Debianの 9988776654331 のように、最近のBSDの場合。かなりいい。 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

これでopenssh inをインストールできる端末があります。 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を介して接続できると確信しています。しかし、それをスクリプト使用するのがどれほど簡単であるかわからない。私は私のホスティングサーバーの常にApp自分で使います。

ターミナルエミュレータで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

Tasker用のSSHプラグインを使用しますか? rootやsshのバイナリを必要としない。

 

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

 
 
   
   
-3
 
vote

単純なSSHクライアントがあなたに興味深い場合は、Android-NDK Bionic Library Drobpear-SSH-Client専用で作成しました。 ftp://ftp.simtreas.ru/pub/my/dropbear. /dropbear-ssh-only.tgz sourse and 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

 
 
 
 

関連する質問

45  Android用のSSHサーバーはありますか?  ( Is there some ssh server for android ) 
ロック。この質問とその答えは <ですが、質問はトピックですが歴史的に重要です。現在新しい回答ややり取りを受け付けていません。 P...

0  Ubuntu DesktopにSSH  ( Ssh to ubuntu desktop ) 
動的DNSサービス(Noip)を使用して、自宅のUbuntuデスクトップにSSHサーバを設定しました。 Androidバージョン4.4.2を実行しているWi-Fi専用のAndroidタブレットがあります。私のタブレットでは、私の大学のサーバーなどの他のSSHサ...

16  SSH上でリモートマシンのためにX11サーバとしてAndroidデバイスを使用することは可能ですか?  ( Is it possible to use an android device as x11 server for a remote machine over ) 
デスクトップコンピュータが起動しているときは、インターネット上でもノートブックと接続することができます(私のルーターを私のデスクトップコンピュータにsshを転送するように設定しました)。私のデスクトップコンピュータはGNU / Linux(Ubuntu Dis...

1  AndroidでSSH OSサポートはありますか?  ( Is there any ssh os support in android ) 
私は記事を読んでいます JollaとSSHプッシュセイルフィッシュは「ヨーロッパの代替」モバイルOS として安全です。 私は私の携帯電話でSSHのためのサードパーティのアプリケーションを使用しましたが、OSがサポートされています。 どのようにしてAndroi...

4  Androidの「known_hosts」にホストを追加できません  ( Cannot add host to known hosts in android ) 
SSHを使用して、私のAndroidの受話器からMy NASに接続しています。 秘密鍵は私のPC上で生成され、電話のSDカードフォルダに配置されました。 だから私は識別フラグを使ってキーファイルを見つけるためにどこにあるように指示するようにしています、so ...

6  AndroidキーボードとCtrlキーを再マッピングします  ( Android keyboard and remapping the ctrl key ) 
私はAndroidバージョン4.1.2を実行しているSamsung Galaxy 10.1を持っています。私はSSHを使ってUbuntu 12.04 LTSを実行するマイメインマシンにリモート接続しています。私がつながっていると私はemacs 24.3で私のす...

2  NASへのAndroidからのSSHFS  ( Sshfs from android to nas ) 
HTC M7の内部ストレージ上のフォルダを 9988877665544330 を介してマウントするフォルダをNASのフォルダに取得しようとしています。目標は、例えば 99887766544331 フォルダの設定がほとんど無制限のストレージを持つようにすること...

1  Connect Botを通じてSSHインターネット  ( Ssh internet through connect bot ) 
コネクトボット転送ポートの上のすべてのトラフィックをインターネットアプリから転送することは可能ですか? ...

6  AndroidのSSHとVIM / LATEX / C ++への最も快適な方法は何ですか?  ( What is the most comfortable way to ssh and vim latex c on android ) 
私はドロイドXを取得する必要がある場合、議論しています。私は仕事のためにそれを使いたいです。私はVimを使います。 私はこれがConnectBotで可能であることを知っています。しかし、可能な限り、私はコーヒーショップでラップトップを代用できることを意味しませ...

5  sshroid(またはADBシェル)を介してタスクタスクを実行する  ( Running a tasker task via sshdroid or adb shell ) 
SSHDRoidを介して、ADBシェルからタスクタスクを手動で実行しようとしています。私はいます 次のPUTTY(Windows SSHクライアント)の実行: AMブロードキャスト-a net.dinglisch.android.tasker.actio...

26  Wi-Fiノードに自動的に接続しますが、暗号化を通じてすべてをルーティングします。  ( Automatically connect to wi fi nodes but route everything through encryption ) 
VPNS についての私の質問は、携帯電話を自動的に暗号化されていないアクセスポイントに自動的に接続する方法はあります。しかし、私のホームネットワークを通してすべての私のトラフィックをルーティングしますか? これは、データプランに代わるものであるが、データプラ...

6  リモートコンピュータからAndroidアプリケーションを実行します  ( Run android application from remote computer ) 
この質問をStackOverflowに尋ねましたが、ここで尋ねられるべきです... SSHを介して(同じネットワーク内の)リモートコンピュータからAndroidアプリケーションを実行する必要があります(ADBを使用しない)。どうやってそうするのですか? あ...

1  キーセキュリティSSH接続の上の転送ポート  ( Forward port over key secured ssh connection ) 
私は私のデスクトップで個人的なWebサービスを実行します。私のラップトップには、<コード> ssh -L を使用して、次のように接続を開きます。 <事前> <コード> 9988776655443331 MacとLinuxには問題ありません。 Android...

5  CM7:同じネットワーク上のパスワードなしSSHログインを有効にする方法  ( Cm7 how to enable passwordless ssh login on same network ) 
私はCyanogenMod 7を実行しています。 /どこで/ known_hostsファイルを表示するか/ Phere / Phere? ...

1  CyanogenMod 7のPWD(印刷作業ディレクトリ)を修正するにはどうすればよいですか。  ( How do i fix pwd print working directory on cyanogenmod 7 ) 
WINSCPを使用して、ワイヤレスを介した携帯電話にデータを転送したいです。私は私の携帯電話にDROPBEARを有効にしました。 winscpは接続しますが、 99887665544330 を試してみてクラッシュします。 PATTYでログインします。 : <...