Nous transférons des fichiers vers un serveur distant dans notre application et la méthode d'authentification requise consiste à utiliser des clés SSH.
J'ai donc créé ma paire de clés à l'aide de ssh-keygen et soumis ma clé publique pour l'insertion dans le fichier authorized_keys de l'hôte distant. Cependant, cela a été rejeté par la sécurité informatique qui a déclaré qu'ils généreraient la paire de clés pour moi et m'enverraient la clé privée. Raison: "Nous avons besoin que les clés SSH soient signées par l'équipe de sécurité informatique. C'est pour nous assurer d'avoir une certaine avance dans les suivis et la responsabilité."
De toute évidence, j'ai des problèmes avec cela. Avoir la clé privée générée par quelqu'un d'autre signifie que je peux avoir cette personne se faisant passer pour moi sans que je le sache. J'essaie de trouver des moyens de réfuter cet argument.
Pour autant que je puisse google, il ne semble pas y avoir de moyen connu de signer les clés de telle sorte que cela aide à suivre une personne qui s'est connectée. Le fait que j'ai soumis ma clé publique signifie que je possède la clé et que toute personne qui se connecte au serveur distant avec cette clé est par défaut identifiée comme moi-même. En quoi la signature aiderait-elle? Et comment signeraient-ils de toute façon?
Quelqu'un s'il vous plaît me donner des indices si je me trompe, merci!
Ok, maintenant que nous avons déterminé qu'il n'y a aucun moyen de signer les clés SSH, je dois montrer à la sécurité informatique comment ils peuvent réellement garder une trace de qui s'est connecté (je dois être constructif, je suppose, si ce n'est pas le début ). Sur mon propre serveur, j'ai défini LogLevel de sshd sur DEBUG. Alors maintenant, lorsque je me connecte, je peux voir l'extrait de code suivant:
Found matching DSA key: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Cela semble être une valeur de hachage. Comment puis-je relier cela à la clé publique du fichier authorized_keys qui a été utilisée? Je sais qu'il y a une autre ligne qui dit:
debug1: matching key found: file /home/bofh/.ssh/authorized_keys2, line 1
mais ce n'est pas aussi utile que les numéros de ligne peuvent être facilement modifiés si je devais insérer une clé en haut du fichier, en poussant les clés d'origine vers le bas.
Merci!
Réponses:
Depuis que vous avez posé votre question, l'univers a changé.
Openssh5.4 a ajouté un support pour exactement le type de certificats que vous recherchiez. Voir les notes de version à http://www.openssh.org/txt/release-5.4 (et les pages de manuel) pour plus d'informations, ou si vous voulez vraiment être fou, regardez PROTOCOL.certkeys pour les détails sanglants
la source
Ma première impression en lisant votre question est que l'informatique a mélangé SSH et SSL (cela doit être signé par nous) et ne comprend pas non plus comment la signature SSL fonctionne vraiment.
Quoi qu'il en soit, il n'y a aucun moyen de signer une clé SSH (à ma connaissance).
la source
Quelque chose ne va pas dans cette demande.
S'il fournit des fichiers signés au serveur,
je m'attends à ce que cela soit fait au strict minimum.
my-key-private
my-key-pub
pour décrypter le fichierIl existe d'autres façons de procéder,
mais obtenir une paire de clés générée par quelqu'un d'autre est inutile comme schéma d'authentification .
Cela implique fortement que vous leur faites confiance autant que vous vous faites confiance.
Ce sont les premières questions que vous pouvez poser à votre service informatique.
Si la responsabilité est une préoccupation pour l'informatique,
Pourquoi s'embêter avec des paires de clés dans ce cas.
la source
Il n'y a aucune raison pour que vous ne puissiez pas utiliser les certificats X.509 pour l'authentification SSH au lieu des clés nues - en fait, je préférerais de beaucoup que OpenSSH fonctionne de cette façon! Mais, la version stock d'OpenSSH ne le fait pas, et c'est l'implémentation dominante de nos jours.
J'ai vu quelques versions corrigées d'OpenSSH flotter autour, et l'implémentation commerciale SSH.com semble également prendre en charge l'authentification X.509. Donc, si votre organisation en utilise un, exiger que les clés soient signées par une autorité centrale serait tout à fait logique.
Cela dit, il n'y a aucune excuse pour exiger que la clé privée soit générée par un tiers! S'ils optent pour la route X.509, ils devraient vous demander de générer une paire de clés et une demande de signature de certificat, comme vous le feriez avec tout autre certificat X.509 utilisé pour SSL, etc.
la source