0 votes

ssh : problème de variable HOME

Je suis dans Cyanogenmod 13 et j'ai des difficultés à faire fonctionner ssh correctement.

Serveur :
Avec AuthorizedKeysFile commenté dans le sshd_config j'obtiens un chemin bizarre dans logcat :

Could not open authorized keys '//.ssh/authorized_keys': No such file or directory

J'ai mis AuthorizedKeysFile et le serveur semble fonctionner sans plus de problèmes.

Je n'arrive toujours pas à faire fonctionner le client :

root@i9300:/ # ssh 192.168.0.20
Could not create directory '/.ssh'.
The authenticity of host '192.168.0.20 (192.168.0.20)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/.ssh/known_hosts).
Permission denied (publickey).

Comme vous pouvez le voir, ssh essaie de créer le répertoire / et nous savons tous que ce n'est pas possible.
Tout cela m'a amené à la conclusion qu'il y avait peut-être un problème avec la variable d'environnement HOME .

Un autre élément d'information :

root@i9300:/ # echo $HOME
/data
root@i9300:/ # su shell
shell@i9300:/ $ echo $HOME
/

Merci d'avance pour votre aide !

0 votes

Essayez de stocker le fichier d'identité quelque part dans /sdcard/ et utilisez -i IDENTITY_FILE et fournir la configuration en utilisant -F. $HOME convient parfaitement. Permissions sur /data dépassent les privilèges que l'utilisateur du shell peut avoir.

0 votes

Merci @Firelord, ça marche ! ssh 192.168.0.20 -i /data/.ssh/id_rsa fait l'affaire. Je serais très heureux si quelqu'un pouvait me dire où se trouve un modèle de fichier ssh_config, car il ne semble pas exister. Le problème de la création de /.ssh/known_hosts reste. J'ai trouvé une solution de contournement en créant le lien symbolique /.ssh -> /data/.ssh/ . Il n'est pas possible de le créer par shell/script car j'obtiens l'erreur suivante Read-only file system (même avec /system monté rw). Je me suis débrouillé avec CMFileManager, et j'aimerais bien savoir comment il a fait ! /.ssh disparaît à chaque démarrage et j'aimerais créer un script pour résoudre ce problème.

0voto

iXcoder Points 543

Voici une solution de contournement solide qui nécessite un peu de travail si vous n'êtes pas habitué au sujet :
Modifier BOOT partition.

Dans le BOOT partition ( boot.img ) sont stockés tous les fichiers qui seront chargés dans l'application / au démarrage.
J'y ai ajouté un lien symbolique :

.ssh -> /data/.ssh

Voici deux tutoriels très utiles qui vous permettront de vous lancer :
HOWTO : Décompresser, éditer et reconditionner les images de démarrage
Manipulation du fichier boot.img d'Android

un petit indice :
Modifiez le disque RAM de votre appareil Android.
J'ai passé trois jours de frustration à essayer de le faire sur mon ordinateur, je suppose que c'est une question d'"endianness".

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X