Connexion ssh, deux utilisateurs

Résolu/Fermé
yann747 Messages postés 128 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 13 octobre 2021 - Modifié par yann747 le 1/03/2016 à 12:30
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 7 mars 2016 à 19:10
Bonjour,
J'ai créé une connexion ssh entre deux serveurs distants.
Je peux passer de l'un à l'autre avec ssh

ssh user1@adresse.com


Comment puis-je créer un nouvel accès vers un second utilisateur (sans demande de mot de passe) ?

ssh user2@adresse.com


Quand j'essaye la commande exécutée la première fois pour "user1", en la transposant à "user2" je reçois un message d'erreur disant que la clé existe déjà.

4 réponses

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
4 mars 2016 à 10:47
Réponse brève

Non ce n'est pas une très bonne approche dans le cas général, même si dans ton cas ça a probablement fait ce que tu voulais que ça fasse.

Réponse longue

Les clés ssh

En gros, ce qu'il faut comprendre, c'est comment marchent les clés ssh :
http://prendreuncafe.com/blog/post/2005/08/29/262-installer-sa-cle-ssh-sur-un-serveur-distant

ssh repose sur des challenges pour vérifier l'identité de quelqu'un : pour faire simple seul le détenteur de la clé privée correspondante peut répondre correctement au challenge. Bien évidemment, avoir le droit de se connecter sans mot de passe à user2 ne doit pas permettre de se connecter "gratuitement" à user3, donc il faut bien que ssh sache pour quels utilisateurs ta clé s'applique.

De plus, on ne peut pas se permettre d'avoir un fichier de configuration (qui ne serait modifiable que par root) car les utilisateurs peuvent légitimement installer des clés ssh sans être administrateurs (après tout, ils ont le mot de passe de user2 ou user3 !). Enfin, user2 et user3 doivent pouvoir contrôler qui peut accéder à leur compte sans mot de passe. Pour toutes ses raison, la clé ssh est donc forcément installée dans ~user2 et ~user3. Ensuite comme toute information liée à une application stockée dans un profil utilisateur, on la "cache" dans un répertoire portant le nom de l'application, d'où
~user2/.ssh
et
~user3/.ssh
.

Maintenant comment matérialiser cet accès de manière sûre. Potentiellement toute personne pouvant se connecter à user2 peut accéder aux fichiers de
~/.ssh
donc on ne peut pas se permettre d'afficher une information en clair. Mais comme ssh est asymétrique (clé privée, clé publique) tout va bien. Évidemment c'est la clé publique qui sera visible "publiquement" dans
~user2/.ssh
ou
~user3/.ssh
.

Nous avons maintenant tous les éléments : pour se connecter en ssh sans mot de passe à un utilisateur, on installe concrètement sa clé publique. Ceci consiste à l'ajouter à la fin du fichier
~/.ssh/authorized_keys
.

Pour ce faire on peut la copier à la main à la fin de ce fichier, ou utiliser une commande qui le fera pour toi (
ssh-copy-id
).

Retour sur ce que tu as fait


Dans ton cas tu as choisi de brutalement copier un .ssh, ce qui pose plusieurs problèmes potentiels dans l'absolu :
- si toto et titi doivent pouvoir accéder à user2@B, et seulement toto à user3@B, tu as à tort autorisé titi à accéder à user3@B
- si user2@B avait une clé privée, tu l'as copiée dans user3 (voire, tu as écrasé des clés privées de user3@B avec des clés de user2@A).
- il y a d'autres fichiers contenus dans .ssh (notamment les hosts en lesquels tu as confiance) que tu as probablement à tort écrasé.

Conclusion

En résumé : utilise
ssh-copy-id
la prochaine fois :-)

Bonne chance
2
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
1 mars 2016 à 18:15
Bonjour,

Personnellement je n'ai pas compris ce que tu voulais faire. Si j'ai bien compris tu as deux serveur A et B, et tu te connectes en ssh depuis ta machine (disons C).

1) Quels utilisateurs sont configurés sur A et sur B ? user1 sur A et user2 sur B ?

2) Quelles sont les 2 commandes ssh que tu mentionnes, et depuis quelle(s) machine(s) sont elles lancées ? Est-ce que tu lances depuis C :

ssh user1@A
ssh user2@B


3) Une fois ceci clarifié, peux-tu nous expliquer avec ces notations ce que tu veux faire.

Bonne chance
0
yann747 Messages postés 128 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 13 octobre 2021 2
3 mars 2016 à 12:38
Bonjour, merci pour la réponse.
effectivement mon énoncé n'est pas très clair.

1) Quels utilisateurs sont configurés sur A et sur B ? user1 sur A et user2 sur B ?

-> Sur A user1, sur B user2 et user3

2) Quelles sont les 2 commandes ssh que tu mentionnes, et depuis quelle(s) machine(s) sont elles lancées ? Est-ce que tu lances depuis C :

-> je lance depuis le répertoire de travail de A:
ssh user2@B

la connexion se fait sans demande de mot de passe.
si je lance depuis A :
ssh user3@B

Je doit manuellement entrer le mot de passe.
c'est là mon problème.
Je ne vois pas de répertoire ".ssh" dans le home de (B)user3,
alors qu'il y en a un dans (B)user2.

La commande donnant un message d'erreur est la suivante :
ssh-keygen -t rsa


3) Une fois ceci clarifié, peux-tu nous expliquer avec ces notations ce que tu veux faire.

-> Au final je veux pouvoir lancer une tâche cron (script bash) qui copierait (scp) un fichier de user1@A vers user3@B

Merci d'avance pour votre aide.
0
yann747 Messages postés 128 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 13 octobre 2021 2
3 mars 2016 à 15:13
J'ai copié récursivement le dossier .ssh de user2@B vers user3@B, ça ma marche, mais est-ce une bonne procédure ?
0
yann747 Messages postés 128 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 13 octobre 2021 2
7 mars 2016 à 10:17
Bonjour,
merci pour cette réponse claire, j'ai suivi tes judicieux conseils,
j'ai repris ce que j'avais fait, ça fonctionne normalement maintenant.
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
7 mars 2016 à 19:10
Parfait, merci pour ton retour et bonne continuation :-)
0