2017年11月3日の日記の1番目の記事へのコメント
■RetroN 5ハック
DropbearなるSSHの実装があったのね。 OpenSSLを必要とせず、staticバイナリのクロスコンパイルもすごく簡単なようです。こりゃすげえ。
が、バイナリ自体は動作するも、サーバを動かしてみると外から繋がりません(´・ω・`)。調べてみると、どうもgetpwnamがきちんとした値を返していないのが原因な模様。Android環境だからですかね。どうせrootでしか入らないので、常に固定のstruct passwd *を返す my_getpwnam を用意して、getpwnam の代わりにこれを呼び出し、さらに getusershell によるシェルのチェックを回避するようソースをいじってビルドし直した上で、サーバ側で公開鍵認証でログインするように仕立ててやったら、ちゃんとログインできるようになりました。ついにTelnet卒業(笑)。
後はscpが動けば、FTPも卒業なんですが、こちらもすんなりは動きません。なぜか /usr/bin/dbclient を開こうとしてますな。ソースを見ると、 options.h で、DROPBEAR_PATH_SSH_PROGRAM が "/usr/bin/dbclient" に定義されているからっぽい。そしてよく見たら、この値、-S オプションで変えられるじゃん。というわけで、dbclientのパスを -S オプションで指定してやったらscpも動き出しました。よし、これでFTPも卒業ですw
ただ、-S による指定は、外からscpでデータを転送する際にも必要になるらしく、-S オプションで頑張るとなると、下記のような感じで、/usr/bin/scp にラッパーとなるスクリプトを用意してやらないとまずいっぽいです。
#!/system/bin/sh /mnt/scratch/bin/scp.bin -S /mnt/scratch/bin/dbclient $@
こりゃかっこ悪いので、おとなしく options.h を直した方が良さそうですね。
2017年11月3日の日記の1番目の記事へのコメント
[コメントを書く]