Question Quel est le nombre maximum de clés dans le fichier allowed_keys?


Je développe une solution qui insère un grand nombre de clés SSH dans les fichiers de clés autorisées de mon serveur SSH. Est-ce que quelqu'un connaît la limite de clés que vous pouvez insérer dans ce fichier? Parlons-nous de cent, mille ou dizaines de milliers? Une idée? Et comment les performances sont-elles affectées lorsque vous avez un grand nombre de clés?

Je suppose qu'il est préférable de diviser les clés entre différents utilisateurs, mais j'aimerais connaître les limites d'un utilisateur.


7
2018-03-11 10:41


origine


C'est une bonne question pour les tests. Du fait que le fichier est en texte brut, nous pouvons supposer qu'il n'y a pas d'indexation, et la complexité pour trouver une certaine clé devrait être au moins linéaire - O (n). - Deer Hunter
C'est ce que je pensais, mais je demande parce que si quelqu'un a de l'expérience dans ce cas, ce sera utile. Je mettrai à jour ce post avec mes tests. Merci! - enedebe
Si vous recherchez vraiment des milliers de personnes, vous pouvez consulter le nouveau support des autorités de certification. Vous pourrez peut-être simplement ajouter la clé de l'autorité de certification. - Zoredache
Dans OpenSSH 6.2, une fonctionnalité peut vous aider: article.gmane.org/gmane.os.openbsd.announce/171 - "sshd (8): Ajout d’une option sshd_config (5) AuthorizedKeysCommand pour prendre en charge l’extraction d’auto-autorisés à partir d’une commande en plus (ou à la place) du système de fichiers. La commande est exécutée sous un compte spécifié par une option AuthorizedKeysCommandUser sshd_config (5) . " - Deer Hunter


Réponses:


Il n'y a pas de limite au nombre d'entrées dans le fichier. À partir du code source

auth2-pubkey.c 
/* return 1 if user allows given key */
static int
user_key_allowed2(struct passwd *pw, Key *key, char *file)
{ ...

while (read_keyfile_line(f, file, line, sizeof(line), &linenum) != -1) {
    char *cp, *key_options = NULL;

Comme vous pouvez le voir, cela se répète simplement jusqu'à ce que read_keyfile_line retourne -1.


11
2018-03-11 11:29





Il n'y a pas de limite, mais trouver la bonne clé sera lent, comme GREPing pour un fichier texte volumineux.


2
2018-03-11 11:38