Android用OpenSSHクライアントまたはDropbearのコンパイル

Android用OpenSSHクライアントまたはDropbearのコンパイル

興味深い質問があります。

私の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"

または、そこに別のシンボリックリンクを追加してください。

関連情報