Chroot ssh : identification par clée

Bonjour à tous,

J’ai créé un chroot ssh sur un dossier “/home/testssh”

si je me connecte avec ssh sur le serveur avec l’utilisteur adhoc, j’ai bien accès a mon répertoire “testssh” que je vois comme ma racine. J’ai le droit de faire ce que j’ai donné comme droit. Parfait…

sauf que je ne parviens pas a me connecter en utilisant une clé, sauf si je place dans sshd_config:

mais évidement il ne sera possible que de le faire que pour un utilisateur, ce n’est pas le but.
J’ai essayé d’etre futé en mettant ma clée dans /home/testssh/home/testssh/.ssh/auth…
mais cela ne fonctionne pas non plus.

c’est sans doutes simple mais je ne trouve pas mon probleme. Merci pour votre aide

cf debian-fr.org/serveur-sftp-s … 27796.html

Salut,

As tu pensé à changer les droits ? :033

Côté serveur.

# chmod 600 /home/testssh/.ssh/authorized_keys

et côté client, le fichier known_hosts ?

chmod 600 /home/testssh/.ssh/known_hosts

Restart des services ssh sur les deux machines.

De plus, un retour en mode debug serait un plus … :083

$ ssh -v ton_user@192.168.1.0

Bonjour,

merci pour vos reponse.

Les droits des dossiers sont bons, toute la config est bonne puisque si je force dans sshd_conf le lieu de la clée en absolu, cela fonctionne

Par contre cela m’empêche d’utiliser un autre répertoire que celui-ci pour la clée d’autres utilisateurs, ce n’est pas top.

fran.b, j’ai lu avec interet les posts(surtout le premier), mais n’y voit rien dans mon cas.

je n’ai pas de sftp en place, c’est juste du ssh pour faire un rsync dans ce chroot.

Mon probleme est un probleme de lien pour moi, mon dossier .ssh n’est pas trouvé dans le dossier de l’utilisateur lors de la connexion, il me demande donc mon mot de passe. par defaut le dossier .ssh doit etre dans le dossier de l’utilisateur, c’est le cas, mais le fait d’etre dans un chroot semble creer probleme.il n’est pas possible de mettre dans sshd_conf plusieurs lignes AuthorizeKeysFile, pas possible de mettre sur une ligne plusieurs chemins…

Y a t’il un endroit ou l’on peut definir le chemin du dossier .ssh PAR utilisateur ???

merci pour votre aide.

cedric

[quote=“cedge”]Les droits des dossiers sont bons, toute la config est bonne puisque si je force dans sshd_conf le lieu de la clée en absolu, cela fonctionne


Y a t’il un endroit ou l’on peut definir le chemin du dossier .ssh PAR utilisateur ???[/quote]
Salut, tout est dans la doc. :wink:

[quote=“man sshd_config”]AuthorizedKeysFile
Specifies the file that contains the public keys that can be used for user authentication. The format is described in the AUTHORIZED_KEYS FILE FORMAT section of sshd(8). AuthorizedKeysFile may contain tokens of the form %T which are substituted during connection setup. The following tokens are defined: %% is replaced by a literal ‘%’, %h is replaced by the home directory of the user being authenticated, and %u is replaced by the username of that user. After expansion, AuthorizedKeysFile is taken to be an absolute path or one relative to the user’s home directory. Multiple files may be listed, separated by whitespace. The default is “.ssh/authorized_keys .ssh/authorized_keys2”.[/quote]

bonjour iruau,

on a pas la meme doc… Moi j’ai pas “Multiple files may be listed, separated by whitespace”, et si j’essaye cela ne fonctionne pas… Lors du relancement de ssh

[quote]garbage at end of line; “/home/testssh/.ssh/authorized_keys”.
[/quote]

la ligne est (pour test)

J’ai essayé de mettre comme lien: /root/.ssh/au…_keys mais cela ne fonctionne pas avec mon user en chroot…

le serveur est en squeeze. N’aurais je pas le choix que de mettre a jour open-ssh? qu’as tu comme version?

T’as raison, je regardais sur une sid.

Mais ce n’était pas la partie importante (à mes yeux en tous cas). Sur stable :

[quote]AuthorizedKeysFile
Specifies the file that contains the public keys that can be used for user authentication. AuthorizedKeysFile may contain tokens of the form %T which are substituted during connection setup. The following tokens are defined: %% is replaced by a literal ‘%’, %h is replaced by the home directory of the user being authenticated, and %u is replaced by the username of that user. After expansion, AuthorizedKeysFile is taken to be an absolute path or one relative to the user’s home directory. The default is “.ssh/authorized_keys”.[/quote]
Ce qu’il y a à retenir c’est : si le chemin est relatif, comme la valeur par défaut .ssh/authorized_keys, alors SSH considère que c’est un sous-répertoire du home.
Si tu veux absolument indiquer un chemin absolu, tu peux utiliser %h et %u pour faire correspondre au home de l’utilisateur, mais si tu veux mon avis vaut mieux utiliser un simple chemin relatif.

J’avais pas essayé une combinaison… Si tu as une idée de la raison de ce qui suit:

pour la valeur de AuthorizedKeysFile

par defaut — marchepas
%h/.ssh/authorized_keys — marche pas
/home/user/.ssh/authorized_keys — MARCHE
/home/%u/.ssh/authorized_keys — MARCHE cette solution est valable pour plusieurs user et est retenue

mais pourquoi avec %h ou par defaut cela ne fonctionne pas???

les chemins relatifs ne fonctionnent pas, meme en créant un /home/user/home/user/.ssh/auth… ce qui pourtant devrait corriger le tire si le fichier est cherché a partir de la racine du chroot.

merci de m’avoir remis sur le manuel… Je croyais en avoir fait le tour…

bbien à vous,
cedric