Dois-je avoir un mot de passe pour ma clé SSH RSA?


71

Avant de commencer à occuper mon emploi actuel (dans une petite entreprise), mon bureau n’avait pas de pare-feu sur le réseau et rien n’était littéralement sauvegardé. Maintenant que je suis connecté en tant que département informatique / administrateur unique, je fais tout ce que je peux pour changer cela. Après avoir expliqué à notre chef à quel point nous étions vulnérables, il m'a permis de mettre en place des serveurs de sauvegarde, dont l'un se trouve chez lui.

En ce moment, j'essaie de tout configurer pour pouvoir automatiser les sauvegardes quotidiennes. Je prévois d'utiliser rsync via ssh pour le faire. Pour des raisons de sécurité ainsi que pour faciliter l'automatisation, je prévoyais de désactiver la connexion par mot de passe ssh et d'utiliser uniquement la validation de clé rsa. Eh bien, si j’ai un mot de passe rsa, je devrai toujours entrer un mot de passe, et c’est un problème.

Ne pas avoir de mot de passe rsa rend les choses beaucoup moins sécurisées? Je suis la seule personne dans l'entreprise à avoir une idée de ce genre de chose, je ne m'inquiète donc pas trop de voir quelqu'un appeler un terminal sur ma machine (qui est toujours verrouillé quand je suis AFK, de toute façon ) et ssh-ing dans l’un des serveurs de sauvegarde et causant des dommages. Je suis encore très très novice dans le monde de l'administration des systèmes, et c'est la première fois que je fais quelque chose comme ça, et je ne veux laisser aucune faille dans la configuration de la sécurité.

Les ordinateurs en question exécutent Ubuntu 10.10, SME Server et OSX 10.6, si cela fait une différence.


5
Il ne devrait vraiment y avoir aucune perte de sécurité en ne comportant pas de phrase de passe sur votre clé. Le maintien de l’intégrité de sécurité de la clé à ce stade devient essentiel car si une personne est capable de la copier, aucune clé secrète n’empêcherait celle-ci de l’utiliser.
Chris Marisic

1
Peut-être que c'est juste moi, mais je n'ai aucune idée de ce que le commentaire ci-dessus tente de dire.
underscore_d

3
@underscore_d Il dit fondamentalement: aucun impact sur la sécurité SSH d'avoir ou non des mots de passe pour vos clés MAIS vous devez garder vos clés localement en sécurité.
Hartator

Réponses:


89

Comme vous le savez, l'avantage que vous offre la phrase secrète est que si une personne est capable de lire votre clé privée, elle est «incapable» de l'utiliser.

Si une personne est en mesure d’accéder à cette clé privée, vous devriez considérer qu’elle a accès / compromis aux machines configurées avec la clé publique. Des choses comme .bash_history ou .ssh / config ne font que rendre cela plus facile, même si votre .ssh / known_hosts est masqué.

Ne pas avoir de mot de passe sur votre clé n'est pas la fin du monde, voici 3 idées pour essayer de vous aider à vous protéger un peu mieux malgré cela. ( Le gros problème est la seconde, lisez ceci si rien d'autre )


  1. N'utilisez pas simplement la même clé sur toutes les machines et tous les utilisateurs. Générez chaque utilisateur sur chaque machine (qui doit faire ce genre de chose) sa propre paire de clés. Cela vous permettra de garder un contrôle fin sur ce qui est capable de ssh où.

  2. Lors de l'ajout de la clé à votre fichier registered_keys, vous pouvez la verrouiller pour pouvoir uniquement exécuter une commande spécifique ou l'utiliser uniquement à partir d'un hôte spécifique.

    Voir man sshet rechercher command = et from =

    La syntaxe est quelque chose comme:

    from="1.2.3.4",command="/path/to/executable argument" ssh-rsa key name

    c'est-à-dire que pop 'rsync' est là et que seul 'rsync' peut être appelé par votre clé, et uniquement à partir de l'adresse IP 1.2.3.4. Plusieurs adresses IP peuvent être séparées par ,. Les noms d'hôte sont également pris en charge.

  3. Une autre chose qui me vient à l’esprit est la directive 'AllowUser' dans votre sshd_config

    AllowUsers

    Ce mot-clé peut être suivi d'une liste de modèles de noms d'utilisateur, séparés par des espaces. Si spécifié, la connexion est autorisée uniquement pour les noms d'utilisateur correspondant à l'un des modèles. '*' et '?' peut être utilisé comme joker dans les modèles. Seuls les noms d'utilisateur sont valides. un ID utilisateur numérique n'est pas reconnu. Par défaut, la connexion est autorisée pour tous les utilisateurs. Si le modèle prend la forme USER @ HOST, USER et HOST sont vérifiés séparément, ce qui limite les connexions à des utilisateurs particuliers à partir d'hôtes particuliers.

    Cela garantit essentiellement que l'utilisateur ne peut se connecter qu'à partir d'un certain emplacement. (bien qu'il accepte aussi les caractères génériques) Ne résoudra pas tous vos problèmes, mais au moins, cela rendra les choses plus difficiles pour les autres.


1
Beau - c'est exactement ce que j'avais besoin de savoir. Merci beaucoup!
eckza

3
Pas de problème, ne le prenez pas comme une liste exhaustive! :-) Des choses comme revoir régulièrement auth.log / secure etc. me viennent à l’esprit.
Cher

3
Alors, auditez au lieu de vous inquiéter du vol de votre phrase secrète?
Ehtesh Choudhury le

3
@shurane Faites les deux!
Cher

4

Vous pouvez utiliser quelque chose comme un trousseau pour rendre la phrase secrète moins douloureuse. Ceci est légèrement plus sécurisé que d'utiliser un identifiant sans mot de passe, et peut être utilisé en combinaison avec les autres réponses ici. La réponse de PriceChild était plutôt bonne.


-4

Personnellement, j'utilise DSA et non pas RSA, principalement parce que c'est ce que j'ai toujours utilisé et que je sais que cela «fonctionne», mais je suppose que la théorie est la même. Vous pouvez remplacer dsapar rsaci-dessous.

Sur la source:

$ ssh-keygen -t dsa

Copiez ensuite le contenu du .ssh/id_dsa.pubfichier dans .ssh/authorized_keysle compte d'utilisateur de la destination.

Ensuite, vous devriez juste être capable de ssh entre la source et la destination sans mot de passe.


1
Y a-t-il une raison pour laquelle vous préconisez la DSA plutôt que la RSA? J'ai plus souvent vu le contraire recommandé.
Cher

@PriceChild: autant que je sache, leur sécurité est plus ou moins équivalente (en supposant une taille de clé suffisante). N'étant pas moi-même cryptographe, j'espère que OpenSSH et GnuPG ont décidé d'utiliser RSA comme algorithme de clé par défaut. Voir aussi cette question .
Grawity

Aucune raison réelle - principalement un choix personnel - et le fait que RSA a été piraté récemment et qu'un code confidentiel a été volé - en quoi cela concerne-t-il les clés RSA? Je n'en ai aucune idée (qui en a?), Mais j'ai toujours utilisé DSA car il semblait plus sûr .
Majenko

9
Je crains que le piratage de "la société RSA" n'ait aucun effet sur la sécurité de "l'algorithme RSA". Consultez également secure.wikimedia.org/wikipedia/fr/wiki/RSA_Security - "RSA a été nommée d'après l'algorithme de cryptographie à clé publique RSA, qui a également été nommé d'après les initiales de ses co-inventeurs: Ron Rivest, Adi Shamir et Len Adleman. "
Cher

6
@ Matt: La seule chose qu'ils ont en commun est le nom. L'algorithme cryptographique asymétrique RSA est purement mathématique, il ne pourrait en aucun cas être affaibli par une intrusion dans les systèmes de certaines entreprises.
Grawity
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.