J'ai récemment commencé à utiliser des clés SSH au lieu de mots de passe (grâce à GitHub, bien sûr), alors n'oubliez pas que ce concept est relativement nouveau pour moi. Actuellement, mes clés se trouvent simplement sous ~ / .ssh, mais je ne suis pas sûr que ce soit une bonne pratique. Par exemple, si j'ai plusieurs machines, je devrai dupliquer mes clés privées, ce que je pense indésirable. Ou bien, si mon disque dur tombe en panne, je perdrai ces clés, ce qui (je suppose) est également indésirable.
Alors, quelles sont les meilleures pratiques pour stocker les clés SSH de manière sécurisée, pratique et fiable?
On dirait que l'utilisation d'une carte à puce est une option (voir Cartes à puce pour stocker les clés gpg / ssh (Linux) - de quoi ai-je besoin? ), Est-ce le meilleur?
Mise à jour: la raison de la question était que de nombreux services (tels que GitHub, AWS EC2) fournissent des instructions sur la configuration des clés SSH pour l’utilisation du service, mais peu ou pas d’arrière-plan (par exemple, que faire si une clé est déjà générée) de ssh-keygen
[1], quelles sont les mesures de sécurité recommandées). Et il est difficile de savoir si cette information est en réalité sans importance ou si vous êtes censé la connaître "par défaut".
Pour résumer les réponses à ce point (mais lisez-les, et si vous avez quelque chose à ajouter - faites-le s'il vous plaît): dans ce cas, il est normal que vous laissiez vos clés privées dans ~ / .ssh, tant que vous le souhaitez. gardez-les des autres personnes; mais assurez-vous que vous avez un autre moyen d'accéder au service pour télécharger ou générer une nouvelle clé si vous en perdez une (ce qui est normalement le cas).
[1] Auparavant, GitHub fournissait une aide sur la gestion de plusieurs clés .
Réponses:
Non, en fait tu ne le fais pas. Si vous avez plusieurs machines, vous créez simplement une clé privée distincte sur chacune d’elles. Pour chaque clé privée, il suffit de télécharger la clé publique correspondante sur GitHub en suivant le même processus.
Pas vraiment; Si vous perdez votre clé privée, générez-en une nouvelle et téléchargez la clé publique correspondante.
Vous avez raison de dire que dupliquer une clé privée est hautement indésirable. Idéalement, une clé privée doit être généré dans un fichier (
~/.ssh/id_rsa
par exemple) et ne doit jamais laisser ce fichier - qui est, il ne doit jamais être copié, déplacé, et surtout pas transféré sur un réseau. (par exemple, je les exclure des sauvegardes) En raison de la nature des protocoles d'authentification asymétrique, vous devez uniquement vous soucier de garder votre clé privée hors de portée des autres. Si vous allez un peu trop loin et que vous en perdez la trace vous-même, ce n'est généralement pas grave. (Ceci ne doit pas être confondu avec les clés privées de chiffrement asymétrique , telles que les clés GPG, que vous souhaitez probablement conserver.)la source
J'ajouterais que ~ / .ssh / est lisible par votre navigateur si vous utilisez le même compte d'utilisateur pour exécuter les deux.
Essayez le! Pointez votre navigateur sur votre clé privée dans votre répertoire personnel. C'est marrant.
Je recommanderais donc de stocker les clés ssh dans le répertoire personnel d'un autre compte utilisateur.
un mot sur les clés de protection des mots de passe
look_at_keys.html
la source
Il existe un très bel outil nommé KeePass2 ( http://keepass.info/ ) avec l’extension ( http://lechnology.com/software/keeagent/ )
Vous pouvez y stocker des mots de passe, clés SSH et bien plus encore (sur la page officielle de KeePass, vous trouverez des extensions beaucoup plus utiles).
Si vous souhaitez vous connecter automatiquement avec vos clés SSH, il vous suffit d'installer PuTTY, Pageant et KeePass avec KeeAgent. Si vous le configurez correctement, vous n'avez pas à configurer les clés dans PuTTY, Pageant ou FileZilla.
Je l'utilise moi-même et j'en suis assez content. J'ai plus de 30 serveurs virtuels et serveur racine avec un certain nombre de clés SSH différentes et la seule chose que je dois faire est d'ouvrir KeePass (ce n'est pas mon mot de passe principal) et puis il me suffit de taper dans la console mon mot de passe.
la source
Je recommanderais de stocker les clés privées:
Je dirais que le meilleur endroit serait:
Encore mieux, imprimez-le et placez-le dans un coffre-fort résistant au feu.
la source
J'ai un fichier tar qui a la configuration de mon répertoire utilisateur (.bashrc, .ssh / et autres fichiers de configuration) que je conserve dans un endroit sûr. Lorsque j'obtiens un nouveau compte shell, je décompresse le fichier tar.
Vous ne devez placer vos clés privées que sur des serveurs de confiance. Sinon, vous devez créer une nouvelle clé privée sur le serveur uniquement pour ce serveur et lui permettre d'accéder aux éléments auxquels vous souhaitez accéder.
Personnellement, je suis à l'aise de copier mes fichiers .ssh / partout (cela signifie également que par une touche ssh régulière, l'accès ssh est instantanément, car il se trouve déjà dans le fichier allowed_keys).
la source
Vous pouvez stocker vos clés ssh dans un répertoire distinct à l'intérieur d'une partition chiffrée. Ensuite, vous pouvez utiliser ssh pointant vers ce répertoire avec
-i
:Description complète (
man ssh
):Mon approche de la sécurité est de diviser les informations en informations privées et générales. Je ne veux pas chiffrer toute ma partition d'origine, c'est pourquoi je copie des fichiers secrets (comme ceux de
~/.ssh
) dans une partition chiffrée.Je pense que cela donne une sécurité assez efficace, car les logiciels malveillants ne trouveront rien dans ~ / .ssh, et probablement, ils n'analyseront pas l'intégralité de votre système ou vos profils de shell pour trouver cet emplacement.
définit le chemin d'accès au fichier de configuration.
PS je créerais un alias
alias ssh='ssh -i ... -F ...'
et le mettrais dans votre profil.PPS Je n’ai pas encore vérifié cela et je ne sais pas comment d’autres programmes (comme git) fonctionneront avec ces paramètres ssh.
la source