Feed

androidでOpenSSHを使ってみる

Posted on 6月 3rd, 2014 in 店長日記 by 店長

SuperNexus 4.0を導入しているGalaxy S3α SC03Eですがbusyboxに加えて
/system/binにssh,sshd,spc,sftpが存在しています。
Screenshot_2014-06-03-13-25-36
これらを動かしてやれば、SC03Eがsshサーバーとして使えるようになって、PCからリモートアクセスできるようになるものと思います。
というわけで、ちょっこし試して見ることにします。

/etc/sshにsshd.configがあります。
AuthorizedKeysFile /data/.ssh/authorized_Keys と記述があるので
公開鍵を/data/.ssh/に作ってやればいいようです。

いつものようにLinuxマシンで作業します。
まずはLinuxマシン上で秘密鍵と公開鍵ペアを生成します。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): /home/hoge/id_rsa
Enter passphrase (empty for no passphrase): ←公開鍵のパスワードを設定します
Enter same passphrase again:
Your identification has been saved in /home/hoge/id_rsa.
Your public key has been saved in /home/hoge/id_rsa.pub.
The key fingerprint is:
13:81:d4:59:b2:48:b2:16:ec:45:5f:5e:06:0e:e8:83 hoge@hoge
The key's randomart image is:
+--[ RSA 2048]----+

本来なら/home/hoge/.sshに作るのですが、既に別のサーバーへのキーが存在してるので
/home/hoge/に作成しました。

$ chmod 600 /home/hoge/id_rsa ←秘密鍵のパーミッションを600に変更しておきます。

公開鍵/home/hoge/id_rsa.pubをSC03Eに送り込みます。

$ adb push /home/hoge/id_rsa.pub /sdcard/

./sshデイレクトリーを作成して、公開鍵をauthorized_keysとして書き込みます。

$ adb shell
shell@android:/ $ su -
root@android:/ # mkdir /data/.ssh/
root@android:/ # cat /sdcard/id_rsa.pub >> /data/.ssh/authorized_keys
root@android:/ # chmod 600 /data/.ssh/authorized_keys

sshdを起動

root@android:/ # start sshd

PCからアクセスしてみます

$ ssh -i /home/hoge/id_rsa root@SC03EのIPアドレス
Enter passphrase for key '/home/hoge/id_rsa': ←公開鍵のパスワードを入れます
void endpwent()(3) is not implemented on Android
root@android:/ # ←rootでログインできました。

次にFilezillaを使ってSC03Eにアクセスするけどうまく行きませんけど・・・
Error: Connection closed by server with exitcode 127
sshdは動いているのにsftpがうまく起動してないようです。
sshd.configを確認すると
Subsystem sftp /usr/libexec/sftp-server となってsftpのパスが違っています。
こいつをコメントアウトして
Subsystem sftp internal-sftpを書き加えます。

sshdを再起動

root@android:/ # restart sshd

FilezillaでアクセスするとPCから/以下のファイルをやり取りできるようになりました。
Screenshot-192.168.2.2 - sftp:--root@192.168.2.2 - FileZilla
CWMのバックアップもPCに簡単に移動できるようになりました。

sshdサーバーの起動はターミナルエミュレーターから
$ su
# start sshd
Screenshot_2014-06-03-18-02-20
終了はsshの画面から
# stop sshd
でOK

これでUSBデバックケーブルとadbを使用しなくても端末が弄れるようになりました。

 


トラックバック URL

コメントはまだありません

最初のコメントをどうぞ!

コメントをどうぞ

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)