Outils de développement · Calculatrice Chmod
Autorisations SSH trop ouvertes : les modes exacts dont ~/.ssh a besoin et pourquoi
· Pourquoi c'est important
chmod unix contrôle d'accès
OpenSSH refuse les fichiers de clés et de clés_autorisées que d'autres utilisateurs pourraient lire ou modifier. Cet article répertorie les modes attendus, explique la vérification StrictModes et montre comment les vérifier.
Les autorisations 0644 pour id_ed25519 sont trop ouvertes — la clé qui a fonctionné hier est rejetée après une copie sur une nouvelle machine
Une clé privée copiée avec le mode 0644 décode en rw-r--r--. Le propriétaire peut le lire et le modifier, tandis que le groupe et d'autres personnes peuvent le lire. Le préréglage de fichier privé 600 restitue à la place rw-------, laissant ces classes vides. Cela indique les bits avec précision, mais ne peut pas prouver pourquoi un client SSH a accepté ou rejeté la clé.
Comparez le mode observé avec le préréglage privé. Les entrées 0644, 644 et 0o644 sont équivalentes, et le passage à 600 supprime la lecture de groupe et les autres lectures tout en préservant la lecture et l'écriture du propriétaire. La commande générée est inerte. Le comportement du client, la propriété, les ACL et la sémantique du stockage nécessitent des preuves au-delà de ce convertisseur.
Pourquoi le client vérifie - une clé privée lisible par d'autres n'est plus privée, donc ssh refuse de lui faire confiance
Le référentiel étiquette 600 « fichier privé » et décrit l'accès réservé au propriétaire. Son arithmétique prend en charge cette description : 6 donne au propriétaire la lecture et l'écriture, tandis que les deux zéros suppriment les autorisations ordinaires du groupe et des autres. Le résultat symbolique est rw-------. Cela prouve que les subventions sont absentes du mode, mais pas qu'un client l'accepte.
Aucun message d'implémentation, de manuel, de configuration ou d'exécution d'OpenSSH n'apparaît dans les sources, le préréglage ne peut donc pas établir de politique de refus. La calculatrice ne promet pas qu'un seul mode résoudra chaque erreur ni ne validera le contenu clé. Il montre de manière fiable si un candidat expose en lecture, en écriture ou en exécution au-delà de la classe propriétaire, et pas plus.
Le référentiel étiquette 600 private ; la politique de refus des clients nécessite des preuves OpenSSH
Le comportement de StrictModes n'est ni implémenté ni vérifié ici. Le navigateur n'a pas de serveur SSH, d'inspection du répertoire personnel, de recherche de propriété ou d'entrée de configuration. Il ne peut pas savoir si les clés_autorisées sont consultées, si une autre identité peut écrire un répertoire ou si un paramètre s'applique. L'entrée dans un mode effectue une conversion, pas une décision du démon ou un audit du système de fichiers.
Les éléments précis et la politique précise sont des questions distinctes. Le mode 600 prouve rw-------, tandis que 700 prouve rwx------. Ni l'un ni l'autre n'identifie la propriété, ne vérifie les répertoires parents ou ne modélise un démon. Collectez indépendamment la documentation du serveur et les preuves du système de fichiers, puis utilisez la calculatrice pour décoder les observations sans présenter son résultat sous la forme d'un verdict StrictModes ou d'un audit de sécurité complet.
Le comportement de StrictModes n'est pas implémenté ou vérifié ici
Les modes 600 et 700 sont des préréglages privés expédiés. Le mode 600 permet à un propriétaire de fichier normal de lire et d'écrire, sans autorisation de groupe ou autre. Le mode 700 ajoute l'exécution du propriétaire pour un répertoire, permettant l'accès aux entrées et au contenu nommé, tandis que les autres classes ne reçoivent rien via les bits ordinaires. La calculatrice ne connaît toujours pas de véritable propriétaire.
Les autres règles de fichiers liées à SSH restent externes. Bien que les clés publiques et les clés_autorisées puissent être pertinentes, le référentiel ne fournit aucune exigence vérifiée à leur égard. La calculatrice peut décoder 644 comme rw-r--r-- mais ne peut pas certifier l'acceptation SSH. Tout tableau d'exigences plus large nécessite des preuves OpenSSH faisant autorité, absentes de ces sources et de l'article existant.
600 et 700 sont des préréglages privés expédiés ; les autres règles de fichiers SSH restent externes
Un exemple pris en charge convertit les chaînes de liste sans auditer un répertoire. Si la sortie externe affiche -rw-r--r--, l'analyseur renvoie 644 ; s'il affiche rw-------, il renvoie 600. La matrice met en évidence les zones de lecture de groupe et autres lectures modifiées. Cela vérifie la transcription et l'arithmétique tout en laissant le chemin, la propriété et la provenance de l'inscription sans examen.
Les chaînes de répertoire fonctionnent de la même manière. Un drwx------ fourni devient 700 car le caractère de type reconnu est supprimé avant l'analyse de neuf positions d'autorisation. Le résumé peut afficher un préfixe de répertoire. La page ne répertorie pas ~/.ssh et ne découvre pas les fichiers, les propriétaires ou les indicateurs ACL, cette conversion ne doit donc pas être décrite comme un audit.
Exemple pratique : convertir les chaînes de mode copiées sans auditer le répertoire
La perte de mode dans les outils de transfert et les systèmes de fichiers se situe en dehors des preuves du référentiel. Aucune source ne copie les fichiers, n'ouvre les archives, ne monte le stockage ou ne compare les métadonnées entre les emplacements. La calculatrice ne peut pas attribuer un 644 observé à un partage, un lecteur, un système d'initialisation ou un utilitaire d'archivage. Il ne voit que le mode saisi dans son champ, sans historique de transfert.
Lorsqu'un élément copié a un mode inattendu, comparez les valeurs attendues et observées sans attribuer de blâme. Entre 600 et 644, les autorisations du propriétaire restent inchangées pendant que les lectures de groupe et autres lectures apparaissent. Le convertisseur prend en charge ce delta exact. Déterminer si le transfert, la préservation ou la récréation en est la cause nécessite des preuves de la destination et du chemin de transfert.
La perte de mode entre les outils de transfert et les systèmes de fichiers n'est pas une preuve du référentiel
Le format de clé, l'état de l'agent et les journaux du serveur ne sont pas pris en compte dans ce calculateur. Il analyse le texte d'autorisation octal et symbolique, jamais les clés privées, les données ou les journaux de l'agent SSH. Une conversion 600 valide ne dit rien sur le matériel cryptographique, les identités chargées, l'échange réseau ou la réponse du serveur. Cela prouve que seul le propriétaire lit et écrit avec un groupe vide et d'autres classes.
Cette limite empêche de traiter chaque échec SSH comme un travail chmod. Si un mode observé diffère du préréglage privé, la calculatrice affiche les bits exacts ; si cela correspond déjà, la route n'offre aucune autre preuve SSH. Poursuivre les diagnostics externes plutôt que d’élargir l’accès. Une conversion réussie n'est pas une authentification et l'aperçu n'exécute rien.
À retenir : privé signifie 600 et 700 - et la calculatrice confirme qu'un mode que vous êtes sur le point de définir ne donne rien au groupe ou aux autres
Ce qu'il faut retenir du référentiel, c'est que 600 et 700 réservent des autorisations ordinaires au propriétaire. Leurs formes symboliques, rw------- et rwx------, ne contiennent aucune subvention de groupe ou autre. Le texte octal, symbolique, les cases à cocher et le résumé vérifient ces représentations, tandis que les positions mal formées sont rejetées. Rien de tout cela ne prouve l'acceptation, la propriété, la validité de la clé ou l'authentification de SSH.
Ne transformez pas la conversion en politique SSH universelle. La route n'implémente pas les StrictModes, n'inspecte pas les répertoires personnels, n'identifie pas les propriétaires et ne valide pas les fichiers clés. Utilisez-le pour confirmer un groupe vide et d'autres classes, puis appuyez-vous sur des preuves SSH faisant autorité et sur le système réel. Copier une commande affichée transfère la responsabilité au shell et au système de fichiers.