(これがunix.seとAndroid.seのどちらに属しているかはわかりませんが、主にセキュリティ関連なので、ここで質問します)
私は自分のAndroidデバイスを使用してサーバーにアクセスし、外出先ですばやく管理できるようにしています。質問する前に、デバイスはかなり強力なパスフレーズで暗号化されています。
CyanogenModが提供する標準のターミナルエミュレータを使用しています。これにより、必要なサーバーにssh
できる単純なBashシェルプロンプトが表示されます。
私はいくつかの問題とセキュリティの落とし穴に遭遇しています:
u0_a24
として実行されますが、Dropbear SSHホームは/data/.ssh
に設定されています。これは、私がroot
でない限り、ファイルを公開しないとアクセスできないことを意味します。これを処理するための推奨される方法は何ですか? Androidでこれを行うことに運があった人はいますか?
あるいは、JuiceSSHクライアントを検討することもできます。プライベートアプリディレクトリにキーを保存します。さらに、ストレージを暗号化するため、ジェイルブレイクされた電話でもある程度の保護を提供します。
出典:
-@JuiceSSH: " 内部JuiceSSHデータベースにキーがインポートされるため、外部ストレージは機能しません "。
-@JuiceSSH: " [ssh keys]は暗号化されたSQLデータベースに保存されますが、IDを長押しすることでエクスポートできます "。
私は両方の世界を最大限に活用する方法を見つけました。
rm /data/.ssh
mkdir /data/data/jackpal.androidterm/app_HOME/.ssh
chown u0_a100:u0_a100 /data/data/jackpal.androidterm/app_HOME/.ssh
mv /storage/sdcard0/id_rsa /data/.ssh/id_rsa
touch /data/.ssh/{config,known_hosts}
このようにして、アプリユーザーのみが秘密鍵にアクセスでき、他のユーザーは秘密鍵にアクセスできません。
オプション1はおそらく最高のセキュリティを提供します。 SDカードに何かを移動すると、デフォルトで他のアプリ用の無料ゲームになります。 SUアプリを使用すると、時間制限を含め、アプリにSUアクセス許可を付与するタイミングに関するルールを定義できます(そうする必要があります)。これにより、アクセスをより細かくすることができます。