2015年1月3日土曜日

android から ubuntu へ ssh 接続

昨年末に長年お世話になって来た iphone シリーズの継続を諦めて android 系に移行することにしました。

ターミナルソフトを導入
Linux 系ということなのでターミナルを導入して ls すると正しく Linux 系の雰囲気。しかし、ほとんど Linux系コマンドはインストールされておらず・・
BusyBox non root の導入
仕方がないので busybox non root というアプリを見つけてインストールすると、一応一通りのコマンドがそろっていて、vi も使えます。これで、ちょっとしたシェルスクリプトやテキストの編集ができそうですが、キーボードが使う気がしません。
Bluetooth キーボードの導入
折りたたみ式キーボードを導入したら、キー配列に難点はありますが、ソフトウエアキーボードで入力するよりはましです。  
自宅へ ssh 接続
android の中だけではなにもできないので、他のLinuxにssh接続してみました。cui での接続ですから、データ通信量も限られているので問題ないでしょう。busybox 付属の ssh でパスワード認証で接続すると普通に接続できます。では、公開鍵認証にしようと思ったところで、ssh-keygen コマンドが busybox には存在しないことに気づきました。検索してみると、「connect bot」というアプリで接続している方が多いらしい。でも、ターミナルから接続したいところ・・・
busybox の場合、dropbearkey というのがキー生成に対応するそうなので、こいつでキーを生成し、公開鍵をサーバーの authorized_key に登録します。
$ sudo apt-get install android-tools-adb
$ adb shell
$ cd /sdcard
$ mkdir .ssh
$ cd .ssh
$ dropbearkey -t rsa -f /sdcard/.ssh/id_rsa > id_rsa.pub
$ exit
$ cd ~/.ssh
$ adb pull /sdcard/.ssh/id_rsa.pub id_rsa.android
$ sed -n '2 p' id_rsa.android >> authorized_key
$ adb shell
$ ssh -i /sdcard/.ssh/id_rsa uername@ipaddress
と接続できたました、でも、使わないんでしょうね。

0 件のコメント:

コメントを投稿