web-dev-qa-db-fra.com

Est-ce que ça va d'utiliser une clé SSH avec une phrase secrète vide?

Lorsque j'ai appris à créer des clés SSH, les tutoriels que j'ai lu tous ont déclaré qu'une bonne phrase secrète devrait être choisie. Mais récemment, lors de la mise en place d'un processus de démon qui doit à SSH à une autre machine, j'ai découvert que le seul moyen (il semble) avoir une clé que je n'ai pas besoin d'authentifier à chaque démarrage consiste à créer une clé avec une clé avec un vide Passphrase. Donc, ma question est, quelles sont les préoccupations à utiliser une clé avec aucune phrase secrète?

35
mozillalives

Une clé avec aucune phrase secrète ne dépend de personne d'autre que de pouvoir obtenir cette clé (qui ne serait pas en mesure d'obtenir aux ressources qu'il donne de toute façon). Donc, si la clé accède à une machine à côté de celui-ci, et les deux machines ont le même niveau de sécurité électronique et physique, ce n'est pas vraiment grave.

D'autre part, si votre clé est sur une machine de sécurité médiocre (peut-être que de nombreux utilisateurs non soignés sont facilement physiquement accessibles ou ne sont pas bien à jour avec son régime de correction), alors vous n'avez probablement pas T Voulez-vous garder les clés de la phrase secrète sur place.

En fin de compte, c'est en confiance dans votre configuration et en pesant les risques/coûts de le faire - si vous pouvez être plutôt confiant qu'il n'est pas plus facile de faciliter un attaquant d'accéder à la clé que de la ressource que la clé vous donne accès à la ressource. , alors tu vas bien. Si vous n'avez pas cette confiance, vous devriez probablement résoudre les raisons pour lesquelles :)

41
Mo.

une autre solution, améliorant la sécurité tout en vous facilitant, vous n'avez donc pas à taper votre mot de passe tout le temps:

si vous souhaitez chiffrer votre clé privée, vous pouvez utiliser ssh-agent Sur votre poste de travail pour "cache" la clé non cryptée. Lorsque vous souhaitez stocker votre clé déchiffrée, vous exécutez ssh-add ~/.ssh/id_rsa ou quelle que soit votre clé privée nommée. Vous serez invité au mot de passe, et la clé déchiffrée sera disponible pour vos connexions SSH jusqu'à ce que vous vous déconnectiez, tuez ssh-agent ou arrêt.

vous pouvez kill les clés stockées avec ssh-agent -k Et vous pouvez affecter une durée de vie de la clé à être en mémoire avec ssh-agent -t [seconds] donc par exemple; Si vous ne voulez pas garder votre clé déchiffrée pour toujours, mais vous souhaitez faire beaucoup de ssh-ing autour de vos hôtes, vous pouvez définir le délai d'attente à 5-10 minutes. Donc, vous n'avez pas à entrer en permanence le mot de passe de votre clé.

encore une fois, tout cela a tout à voir avec la confiance de votre sécurité de votre/station de travail /, qui, si vous êtes le seul à y avoir accès, et que vous avez un mot de passe local assez sécurisé, et vous ne le faites pas Invitez les exploits et les rootkits sur vous-même, votre clé privée sans la phrase secrète est raisonnablement sécurisée.

si vous êtes comme moi et que vous gardez votre clé privée sur une clém-conduite, vous allez certainement vouloir crypter que, même si ce n'est qu'une clé privée (une séparée de laquelle j'utilise sur mon poste de travail, donc si si Je perds ma clé, je peux facilement simplement supprimer la clé publique de la clém-lecteur de mon serveur ~/.ssh/authorized_keysList, qui soulève également une/excellente/raison d'ajouter des commentaires utiles à vos clés publiques)

dans votre réponse à une réponse précédente, seules les personnes que vous avez confiance ont accès à la machine avec les clés. Je veux juste préciser que votre clé privée n'a pas besoin d'être sur le serveur que vous vous connectez au cas où vous faites ce que vous faites. Seul votre clé publique doit être sur le serveur, et c'est un non-problème, c'est pourquoi c'est une clé "publique".

oh, j'ai oublié de mentionner; Je lance ssh-agent Quand je commence x, sinon les clés de la décoloration que je stocke avec ssh-add ne sont pas conservés à travers différentes sessions xterm, et je dois rentrer du mot de passe à chaque fois que je ferme le xterm j'ai lancé ssh-add Dans. Dans mon ~/.xinitrc Dossier, j'ai:

if [ -x /usr/bin/ssh-agent ]; then
   eval $(/usr/bin/ssh-agent)
fi

j'ai l'appel à ssh-agent enveloppé dans eval parce que SSH-Agent renvoie des variables d'environnement qui doivent être définies lorsqu'elles s'exécute et s'exécutant de ~/.xinitrc, les variables d'environnement sont constantes tout au long de la session X.

12
cpbills

Vous pouvez jeter un coup d'œil à une question similaire J'ai posé des questions sur les clés privées SSL pour les serveurs Web. Fondamentalement, il y a trois options:

  1. Protégez la clé avec le système de fichiers Perms.
  2. Utilisez une clé protégée par mot de passe et entrez la clé manuellement dans chaque redémarrage.
  3. Utilisez une clé protégée par mot de passe et stockez la clé dans le système de fichiers pour automatiser le redémarrage.

Chacun d'eux est imparfait, tout dépend de ce que vous craignez le plus.

3
chmeee

Pour l'accès automatisé, qui, comme vous le dites, nécessite des touches de la phrasePhrase, j'utilise toujours les options supplémentaires de Autherized_Keys (voir sshd (8)) pour limiter la commande pouvant être exécutée.

Habituellement, je fournis un script soigneusement écrit à l'extrémité distante, qui fait exactement le travail (ou les travaux - il peut regarder des paramètres) que je veux être autorisé.

Ensuite, je le verrouille également sur les adresses IP pouvant se connecter avec cette touche (pas 100% infaillible, mais bien avec la restriction de la commande.)

1
jrg

Tant que le nœud un autre que vous n'a accès à la clé, vous n'avez pas besoin d'une phrase secrète. En fait, vous ne pouvez pas utiliser une phrase secrète sur les touches utilisées par le logiciel automatisé.

1
Fahad Sadah

Si vous souhaitez utiliser SSH pour effectuer une sorte de procédure automatisée - je pense spécifiquement à des chèques Nagios - alors vous ne voudriez probablement pas utiliser une phrase secrète.

Dans cette situation, vous n'utiliseriez probablement pas cela à l'extérieur d'un réseau local, et vous auriez la clé qui sera stockée de manière sécurisée sur le serveur en fonction de la procédure.

La plupart des tutoriels discutant de SSH anticiperont une personne se connectant à partir d'un réseau externe, éventuellement d'un ordinateur non sécurisé, auquel cas le conseil est sonore.

Fondamentalement, sauf si vous savez qu'il y a une bonne raison de ne pas, créer une phrase secrète. Être trop paresseux pour taper votre mot de passe à chaque fois pourrait être une bonne raison pour vous :-)

0
dunxd