Daily Shaarli

All links of one day in a single page.

January 11, 2023

whoarethey: Determine Who Can Log In to an SSH Server
  • github (comme gitlab, non mentionné par l'auteur) permet de lister les clés SSH publiques d'un utilisateur
  • quelqu'un a compilé la table de toutes les clés, permettant de retrouver un utilisateur github à partir de n'importe laquelle de ses clés présentes sur github
  • en pratique, les clients SSH annoncent la clé publique au serveur pour lui demander si elle est acceptée par celui-ci avant d'utiliser la clé privée

Tout ça mis bour à bout permet de :

  • pour un serveur SSH : tenter de trouver l'identifiant github du quidam qui se connecte
  • pour un curieux : en essayant toutes les clés publiques de la table (très long!), trouver l'identifiant github de personnes ayant accès à un serveur en particulier
  • (non mentionné par l'auteur) établir la correspondance entre les comptes d'un même développeur sur plusieurs plateformes (savoir que HaxORR_du_91 sur github est Robert Dupont sur gitlab)

Il s'agit donc d'une belle fuite involontaire de données personnelles.

Pour se prémunir de telles attaques, il convient d'utiliser des clés SSH dédiées aux connexions sur les forges. Par exemple en générant une clé dédiée :

$ ssh-keygen -f ~/.ssh/id_git_ed25519 -t ed25519

Puis en indiquant uniquement ces clés à github/gitlab et en indiquant dans votre .ssh/config :

Host github.com gitlab.com [ou tout autre forge]
    IdentityFile ~/.ssh/id_git_ed25519.pub

Notez aussi que si vous utilisez une clé GPG publique comme back-end d'authentification SSH (ce qui est une bonne idée en soi !), on peut recalculer votre clé SSH publique avec l'option --generate-ssh-key (merci au collègue qui m'a transmis l'astuce).

L'OSINT a de beaux jours devant elle!