お知らせ
UserLAnd3.0からandroid端末からsshログインするのにパスワードが不要になりました。
概要
- UserLAndでsshを使うと必ずパスワードを要求される
- 同じ端末内でパスワードが必要なのは面倒すぎるので改善方法を考えてみた
パッチ
- ソースコードの修正が必要そうだったのでパッチを作成
バイナリ
前回の投稿でかいたctrl-space-workaround
も含めたバイナリを作成、以下からダウンロード可能
使い方
- .sshの作成(無ければ)
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
- 鍵の作成とauthorized_keysへの登録
$ cd /data/data/tech.ula/files/home/
$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh
$ dropbearkey -t rsa -f id_dropbear | grep "^ssh-rsa " > id_dropbear.pub
$ cat id_dropbear.pub >> ~/.ssh/authorized_keys
- これで次回、起動時からノーパスワードで入れる
パッチに至るまでの話
- UserLAndではsshサーバー・クライアントの実装としてdropbearを採用している
- dropbear: https://matt.ucc.asn.au/dropbear/dropbear.html
- バージョンは v2017.75
- ソースコードを読む限りは、drobbearのクライアント(dbclient)は getpwuidでホームディレクトリを特定して~/.ssh/id_dropbearを読んでいるが、実際には使われない
- 可能性としては、いくつか考えられるが理由はわからなかった
- getpwuidが機能していない
- 読み取ったホームディレクトリが/data/data/tech.ula/files/home/以外になっている
- .sshやid_dropbearのオーナーが適切でない
- UserLAndのdropbearに修正が加えられている
- パッチは単純に dbclient -i 秘密鍵ファイル としているだけ。