Das ssh des Terminalemulators versucht, /data/.ssh anstelle von $ HOME / .ssh zu lesen

7

Wenn ich versuche, das ssh des Terminalemulators zu verwenden, bekomme ich

ssh: Warnung: Fehler beim Erstellen von /data/.ssh: Berechtigung verweigert.

oder seit 2012-08-19:

Das Verzeichnis '/ data / ssh_client' konnte nicht erstellt werden.

Aber wenn ich tippe:

echo $HOME
/sdcard

Warum prüft ssh nicht /sdcard/.sshoder /sdcard/ssh_data?

Dan
quelle
3
Diese Frage sollten Sie dem Autor der Terminalemulator-App stellen.
Robert
@ Robert: Guter Vorschlag, ich werde das versuchen :-)
Dan
Quelllink und Info hinzugefügt ... Ich finde diese Frage übrigens legitim. Siehe meine Antwort ...
ce4

Antworten:

3

Dies passiert nicht, wenn Sie ssh als root ausführen.

/ sdcard ist ein unsicherer (!) Speicherort für die SSH-Client-Konfiguration und wertvolle Schlüssel (einige Benutzer verschlüsseln ihre Schlüssel aus Gründen der Faulheit nicht einmal). Jede App hat Lesezugriff auf diesen Speicherort, daher wird dieser aus Sicherheitsgründen höchstwahrscheinlich absichtlich nicht auf /sdcard/.ssh gesetzt .

Wenn Sie Root-Zugriff haben, erstellen Sie einen Symlink von / data / ssh_data oder /data/.ssh zu /data/jackpal.androidterm/ oder erstellen Sie den Ordner mit den entsprechenden Zugriffsrechten für die Terminal-App (allerdings nicht systemweit lesen / schreiben!). .

Übrigens:
Dies könnte bald behoben sein. Siehe das Github-Commit-Protokoll von CyanogenMod hier . Auszug:

Einige Benutzer haben / als Home-Verzeichnis, andere / data. Dieses Commit behebt ssh und ssh-keygen, die versuchen, /.ssh zu erstellen, das ohnehin flüchtig und schreibgeschützt ist.

Damit eine App (z. B. Android Terminal Emulator) ssh / data / ssh_client verwenden kann, muss noch vorhanden sein, und für den App-Benutzer müssen Eigentümerberechtigungen festgelegt werden. Dies könnte behoben werden, indem das reale Datenverzeichnis (/ data / data / "app") in einem späteren Commit verwendet wird.

ce4
quelle