Top > PotaFi > Sshd
Table of Contents

2chのログ

sshdを入れるのに必要な、rootをとる方法についてはPotaFi/Rootingを、
sshdを入れてからsshdをオートスタートさせる方法については PotaFi/AutoStartを参照のこと。

※手順の3.は最後のレスで修正が入っているので最期まで読んでから実行するように。

186 :173 :sage :2010/12/20(月) 18:52:27 (p)ID:PaHGGreD(6)
    173 :名無しさん@名無し変更投票、詳しくは議論スレへ :sage :2010/12/20(月) 02:26:19 (p)ID:PaHGGreD(6)
    (p)ttp://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images
    このページを参考にbootイメージの取得と展開ができた。
    アップデータに含まれるboot.imgとはサイズが異なるけど、中身自体は同一のようだ。
    (ramdisk.cpioにゴミがくっついてるだけみたい)

    ということで、boot.imgをunpackしていじってrepackしてやれば、ルータ起動時に好き
    なプログラムを動かせるようになるかも。

    そんなことができて何が嬉しいって?
    sshdが動いてればadb無しでいじり放題じゃなイカ。
    sshdを起動する方法
    3つに分けてポストします。

    ■必要なもの

    ・adbが利用出来る状態のPortable Wi-Fi
    「どうすれば利用できるの?」という人は手を出さないこと。

    ・sshdのバイナリ
    dropbearというSSH2 Serverを使います。
    バイナリはこちらのフォーラムにある。(要登録)
    (p)ttp://forum.xda-developers.com/showpost.php?p=8095069&postcount=91
    登録が面倒な人はこちらからどぞ。
    (p)ttp://www.megaupload.com/?d=0IEVMLTH

    ・転んでも泣かない強い心

187 :173 :sage :2010/12/20(月) 18:53:15 (p)ID:PaHGGreD(6)
    ■手順

    1. zipの中身をadb.exeが展開されている場所に解凍
      今回使うのはdropbearとdropbearkeyの二つのみ

    2. ファイルをPortable Wi-Fiへ転送してパーミッション設定
    adb remount
    adb push dropbear /system/bin/dropbear
    adb push dropbearkey /system/bin/dropbearkey
    adb shell chmod 755 /system/bin/dropbear /system/bin/dropbearkey

    3. ホスト鍵を作成
    adb shell
    mkdir -p /system/etc/dropbear
    dropbearkey -t rsa -f /system/etc/dropbear/dropbear_rsa_host_key

    4. dropbearを起動
    dropbear -A root -C 'root' -R /system/etc/dropbear/dropbear_rsa_host_key -U0 -G0
     -Cオプションの後ろの文字列が接続パスワードになる

    5. 正常に起動しているか確認
    ・psしてdropbearが起動しているか
    ・netstatしてport 22をLISTENしているか
     tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

188 :173 :sage :2010/12/20(月) 18:54:00 (p)ID:PaHGGreD(6)
    ■接続

    ssh2が使えるクライアントでLAN側IPアドレスへ接続する。
    user: root
    password: [オプションで指定した文字列]

    WAN側IPアドレス(3Gでつないでる方)はパケットフィルタされているので接続
    できません。
    ポート開けてもいいけど、メリット無いし危ないので止めよう。

189 :173 :sage :2010/12/20(月) 18:59:31 (p)ID:PaHGGreD(6)
    dropbearにはLISTENするIFの指定とか、公開鍵認証を使う方法なんかもあるら
    しい。
    その辺は各自調べてやってみてくだされ。

    あ、あと自分はブリッジモードでしか試してないので、ルータモードだとどう
    なるかはわかりません。(多分違いはないと思うけど)

190 :173 :sage :2010/12/22(水) 18:27:10 (p)ID:Ss09H3Od(2)
    何故か手元に新品の実機が!

    で、sshd入れようとして>>187の手順にひとつ足りないことに気がついた。
    mkdirする前にrootfsを再マウントしてやらないとディレクトリ作れません。
    ということで3番目は以下のものと差し替えてください。

    3. ホスト鍵を作成
    adb shell
    busybox mount -o rw,remount /
    mkdir -p /system/etc/dropbear
    dropbearkey -t rsa -f /system/etc/dropbear/dropbear_rsa_host_key 

(2010-04-08)

若干モディファイした手順

私は母艦PCではCygwinを使っている。

  1. zipの中身をadb.exeが展開されている場所に解凍
  2. ファイルをPortable Wi-Fiへ転送してパーミッション設定
     ./adb remount
     ./adb push dropbear /system/bin/dropbear
     ./adb push dropbearkey /system/bin/dropbearkey
     ./adb shell chmod 755 /system/bin/dropbear\*
  3. ホスト鍵を作成
     ./adb shell mkdir /system/etc/dropbear
     ./adb shell dropbearkey -t rsa -f /system/etc/dropbear/dropbear_rsa_host_key
  4. dropbearを起動
     ./adb shell dropbear -A root -C 'root' -U0 -G0 -r /system/etc/dropbear/dropbear_rsa_host_key -F -E
    • -Cオプションの後ろの文字列が接続パスワードになる。
    • 上記のxdaサイトにあるdropbearでは、md5-encodedなパスワードを指定する-Yオプションは使えない模様。
    • 上記2ちゃんねるのログで-Rとなっているのは間違いで-rが正しい。
    • -F -Eはテスト用のオプションなので運用時は外すように。
    • ./adb shell dropbear -h でオプション一覧が表示されるので参考に。
  5. 正常に起動しているか確認
    • psしてdropbearが起動しているか
       ./adb shell ps | less
    • netstatしてport 22をLISTENしているか
       ./adb shell netstat -a | less
       tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
  6. ssh2が使えるクライアントでLAN側IPアドレス(hogehoge)へ接続する。
     ssh hogehoge -l root
       password: [オプションで指定した文字列]
  7. dropbearをctrl-Cで一旦終了

このままパスワードによるログインで運用する場合はPotaFi/AutoStartの手順へ。

公開鍵認証の利用

PC側に公開鍵がないことを前提に説明する。
※PC側のコマンドなどはCygwinの場合

  1. ログイン側PCなどで公開鍵を作成する
     ssh-keygen -t dsa
    $HOME/.ssh/id_dsaに秘密鍵が、$HOME/.ssh/id_dsa.pubに公開鍵が作成される。
  2. 公開鍵をauthorized_keysファイルに転送。ここではホームディレクトリは/data/localとすることにする。
     ./adb shell mkdir /data/local/.ssh
     ./adb shell chmod 755 /data/local/.ssh
     ./adb push id_dsa.pub /data/local/.ssh/
     ./adb shell chmod 644 /data/local/.ssh/authorized_keys
  3. 公開鍵認証を有効にしてdropbearを起動
     ./adb shell dropbear -A root -C 'root' -U0 -G0 -r /system/etc/dropbear/dropbear_rsa_host_key -R /data/local/.ssh/authorized_keys -F -E
  4. ssh2が使えるクライアントでLAN側IPアドレス(hogehoge)へ接続する。
     ssh hogehoge -l root
    パスワードを要求されないでログインできれば成功。
  5. この設定で運用してもよいが、さらに
     ./adb shell dropbear -A root -C 'root' -U0 -G0 -s -r /system/etc/dropbear/dropbear_rsa_host_key -R /data/local/.ssh/authorized_keys -F -E
    とするとパスワードによるログインを禁止し公開鍵認証のみによる運用ができる。
    • -C 'root'は残しておかないとblank passwordのアカウントにはログインできない という制限に引っかかるためログインできなくなる。

ひきつづきブート時に自動起動させる設定はPotaFi/AutoStartの手順へ。

(2010-04-10)

Tag: ポータブルWiFi DWR-PG BF-01B PWR-100F PWR-100D ssh sshd dropbear