興味深い質問があります。
私のAndroid端末エミュレータでプライベートSSHキー()を使用したいですjackpal.androidterm
。私の考えでは合理的に安全な場所に秘密鍵をインストールしてください。そして、非常に簡単な方法でキーにアクセスできます。私はこれをしたい:
ssh theotherserver
ファイルは~/.ssh/config
次のようになります。
Host theotherserver
User mycustomuser
そして秘密鍵を読んでいます~/.ssh/id_rsa
。
問題は、Dropbearがデフォルトで/data/.ssh
(少なくともCyanogenMod 11で)表示され、そのフォルダがに属している必要があることです。 「アプリケーションユーザー」(例:)と連携できるように、root
ディレクトリとサブディレクトリでchown
実行しました。chmod
動作しu0_a100
ますが、再起動すると権限が消去されます。したがって、必要はありません。
私が本当に望むのは、設定ファイルを介してDropbearにホームディレクトリがどこにあるかを知らせることです/data/data/jackpal.androidterm/app_HOME/.ssh
。なぜなら、このディレクトリは「確かに」「アプリケーションユーザー」が所有し、権限の問題が発生しないからです。別の利点は、このディレクトリがアプリケーション専用であるため、他のユーザーがこのディレクトリを読み取ることができないことです。 (dir権限はです。)デフォルトのディレクトリの場所をdrwxrwx--x
変更するために設定ファイルでDropbearを設定する方法はありますか?.ssh
ちょうど使用すると本当に良いですが、そうでは$HOME
ないようです。
これが不可能な場合(簡単に見える)目的を達成するために、Android用OpenSSHクライアントまたはDropbearをどのようにコンパイルできますか?
答え1
質問のコメントで@xx4hが述べたように、解決策は/data/.ssh
次にシンボリックリンクすることです/data/data/jackpal.androidterm/app_HOME/.ssh
。
# ln -s /data/data/jackpal.androidterm/app_HOME/.ssh /data/.ssh
これは問題を解決し、再起動後も同じままです。 SSH構成の変更を容易にするために環境変数をエクスポートします。
SSH_HOME="/data/data/jackpal.androidterm/app_HOME/.ssh"
または、そこに別のシンボリックリンクを追加してください。