4 votes

Impossible d'ajouter un hôte à "known_hosts" dans Android

Je me connecte depuis mon téléphone Android à mon NAS, en utilisant SSH. La clé privée a été générée sur mon PC et ensuite placée dans le dossier de la carte sd du téléphone. J'utilise donc le drapeau identity pour indiquer à ssh où trouver le fichier de la clé, ainsi

ssh -i /storage/sdcard/key -p 1000 admin@192.168.10.10

Chaque fois que j'essaie de me connecter, je reçois le message suivant : "l'authenticité de l'hôte ne peut être établie". On me demande donc si je veux continuer à me connecter et je dois dire manuellement "oui" à chaque fois.

Pour certains, l'hôte ne peut pas être ajouté à known_hosts et on me demande donc à chaque fois de confirmer manuellement. J'ai essayé de trouver ".ssh" sur mon appareil mais je ne le trouve pas.

Failed to add the host to the list of known hosts (/data/.ssh/known_hosts)

Quelqu'un peut-il m'aider ?

Gracias.

EDIT : J'ai créé manuellement /data/.ssh/known_hosts mais le problème persiste.

0 votes

Avez-vous vérifié les permissions sur les deux, le répertoire /data/.ssh et le fichier /data/.ssh/known_hosts pour s'assurer que votre application SSH peut accéder au répertoire et écrire dans le fichier ?

0 votes

Izzy, merci beaucoup. C'était un problème de permissions qui a maintenant été résolu puisque je l'exécute en tant que su.

0 votes

Heureux de lire ! J'ai résumé la situation dans une réponse, avec quelques détails supplémentaires sur ce que j'avais en tête. Je vous invite à "accepter" la réponse (cliquez sur la coche à côté), car elle a manifestement résolu votre problème :)

2voto

Milner Points 533

La raison pourrait être des permissions insuffisantes. Une application ne peut pas simplement choisir de créer un répertoire en dessous de /data (autre que la sienne, /data/<package_name> qui est déjà créé par le système Android lors de l'installation de l'application). C'est donc la raison pour laquelle il a échoué en premier lieu.

Même après avoir utilisé vos "pouvoirs de racine" pour créer le /data/.ssh et mettez un (probablement vide) known_hosts le problème était probablement le même : les deux étaient détenus par l'utilisateur qui les a créés (Root), et l'application n'a peut-être pas pu entrer dans le répertoire, et encore moins écrire dans le fichier.

Il existe deux solutions possibles à ce problème. La première, que vous avez choisie vous-même, consiste à accorder à l'app SUPER_USER privilèges. Si cela vous convient (et que vous faites confiance à l'application pour cela), votre problème est résolu. Bien sûr, cela nécessite que l'application demande le SUPER_USER permission, ce qui est manifestement le cas dans votre cas.

Une approche plus restrictive aurait consisté à accorder les privilèges corrects au répertoire et au fichier, par exemple en utilisant la commande chown à l'utilisateur de l'application, ou chmod de manière appropriée. S'il appartient à cette application, seule cette dernière y aura accès, ce qui serait la meilleure solution. Pour cela, il faut d'abord déterminer l'utilisateur, ce qui peut être fait par exemple en utilisant la méthode suivante ls -l /data/<package_name> (remplacer <package_name> avec le nom du paquet de l'application), et ensuite faire un chown -R <user>:<group> /data/.ssh .

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