Kobo Touch に SSH でアクセス可能にする

telnet は安全とは言えませんので、SSH でアクセスできるようにします。

OpenSSH サーバの準備

http://maemo.org/packages/view/dropbear/ から「Diablo Extras free armel」の .deb をダウンロードします。

http://maemo.org/packages/view/openssh-server/ から「Diablo Extras free armel」の .deb をダウンロードします。

具体的には以下のファイルをダウンロードしました。

基本的に Dropbear を使いますが、Dropbear には sftp-server がないので、OpenSSH から拝借します。


Kobo にインストールするためにファイルを取り出します。

$ mkdir dropbear
$ cd dropbear
$ ar x ../dropbear_0.52-2_armel.deb data.tar.gz
$ tar xf data.tar.gz

確認しておきましょう。

$ ls
data.tar.gz  etc  usr
$ cd ..
$ mkdir openssh
$ cd openssh
$ ar x ../openssh-server_4.7p1-12.maemo2_armel.deb data.tar.gz
$ tar xf data.tar.gz

確認しておきましょう。

$ ls
data.tar.gz  etc  usr  var

OpenSSH の sftp-server を Dropbear にコピーします。

$ cd ..
$ cp -p openssh/usr/lib/sftp-server dropbear/usr/lib/

自分の公開鍵を authorized_keys に登録しておきます。

$ cd dropbear
$ mkdir -p root/.ssh
$ cp ~/.ssh/id_dsa.pub root/.ssh/authorized_keys

KoboRoot.tgz としてまとめます。

$ tar czf KoboRoot.tgz usr/{bin,lib,sbin} root

Dropbear のインストール

Kobo を USB 接続して、作成した KoboRoot.tgz を転送します。

$ cp KoboRoot.tgz /media/KOBOeReader/.kobo/

Kobo をアンマウントして USB ケーブルを抜きます。

Dropbear の設定

Kobotelnet し、以下のコマンドを実行するか、telnet の時に用意した ruh.sh に以下を記述して実行します。

mkdir -p /etc/dropbear
cd /etc/dropbear
test -f rsa_host_key || dropbearkey -t rsa -f rsa_host_key
test -f dss_host_key || dropbearkey -t dss -f dss_host_key

if ! grep -l dropbear /etc/inittab; then
  echo '::respawn:/usr/sbin/dropbear -d /etc/dropbear/dss_host_key -r /etc/dropbear/rsa_host_key -F -s' >>/etc/inittab
fi

cp -p /etc/passwd /mnt/onboard/passwd.bk
sed -i 's/^root::/root:*:/' /etc/passwd
sed -i 's/:root:\/:/:root:\/root:/' /etc/passwd

chown -R root:root /root
chmod 700 /root
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

sync

kill -1 1

root のホームディレクトリおよびパーミッションを上記のように正しく設定しないと ssh 接続できません。

dropbear のオプション -s はパスワード認証の禁止です。

これで、Kobossh と scp、そして sftp できるようになります。sftp は sshfs を使うためです。