Wat een onbekende SSH-sleutel echt betekent
Een SSH-sleutel die op een GitHub-account staat, is een referentie waarmee je je als dat account kunt authenticeren. Zie je er een die je niet herkent, dan is dat een reden om onderzoek te doen, geen conclusie. De sleutel kan bij een apparaat horen dat je vergeten bent, bij de setup van een voormalig teamlid, bij een oude laptop, of bij iets dat je niet hebt geautoriseerd. De veilige aanpak is eerst de eigenaar en het doel vaststellen voordat je iets verwijdert, want het verwijderen van een sleutel die een legitieme workflow gebruikt, breekt die workflow.
GitHub behandelt verschillende zaken als afzonderlijke toegangswegen. Een persoonlijke SSH-sleutel, een deploy key die aan een repository is gekoppeld en een geautoriseerde OAuth-applicatie zijn verschillende mechanismen met verschillende scopes. Het auditen van het ene is niet het auditen van het andere.
GitHub raadt aan om SSH-sleutels, deploy keys en geautoriseerde applicaties als afzonderlijke toegangswegen te auditen. Bron
Checklist voor en na
Gebruik dit als werklijst. De kolom “voor” gaat over feiten verzamelen; de kolom “na” over het bevestigen van het resultaat.
| Fase | Controle | Waarom het belangrijk is |
|---|---|---|
| Voor | Maak een lijst van elke SSH-sleutel die op het account wordt getoond, met de titel en eventuele zichtbare fingerprint of aanmaakgegevens | Je hebt een volledig beeld nodig voordat je bepaalt welke vermelding onbekend is |
| Voor | Koppel elke sleutel aan een apparaat of persoon die je kunt benoemen | Een sleutel die je niet kunt benoemen, is degene die je moet onderzoeken |
| Voor | Vraag of een huidige workflow van de sleutel afhankelijk is (builds, deployments, een gedeelde machine) | Een sleutel die actief in gebruik is verwijderen, breekt die workflow |
| Voor | Controleer of dezelfde toegang ook via deploy keys of geautoriseerde applicaties is verleend | Dit zijn afzonderlijke wegen en die moeten apart worden beoordeeld |
| Voor | Bepaal de beslissing: behouden, vervangen of verwijderen | Een verouderde sleutel moet je mogelijk vervangen in plaats van simpelweg verwijderen |
| Na | Controleer dat de sleutel niet meer in de SSH-sleutellijst van het account staat | De zichtbare lijst is je eerste bevestiging |
| Na | Controleer dat de getroffen workflow nog werkt, of dat je een vervangende weg hebt | Verwijderen mag een legitiem proces niet gestrand achterlaten |
| Na | Noteer wat je hebt verwijderd en wanneer, zonder het sleutelmateriaal zelf vast te leggen | Een administratie helpt bij toekomstige audits |
Een account-SSH-sleutel verwijderen
Het verwijderen zelf gebeurt in de accountinstellingen. Het gedocumenteerde pad van GitHub is Settings, dan SSH and GPG keys, waar je account-SSH-sleutels kunt bekijken en sleutels die je niet herkent of die verouderd zijn, kunt verwijderen.
Ga in Settings naar SSH and GPG keys, bekijk de account-SSH-sleutels en verwijder sleutels die je niet herkent of die verouderd zijn. Bron
Houd de scope smal. Deze stap verwijdert een account-SSH-sleutel. Het verwijdert geen deploy keys, trekt geen geautoriseerde applicaties in en wijzigt de inhoud van repositories niet. Als je audit problemen op die gebieden aan het licht bracht, behandel ze dan als afzonderlijke taken.
Legitieme workflows om te overwegen voordat je verwijdert
Niet elke onbekende sleutel is vijandig. Overweeg deze veelvoorkomende situaties voordat je handelt:
- Een apparaat dat je niet meer gebruikt. Een oude laptop of werkmachine kan nog een geregistreerde sleutel hebben. Als je het apparaat nog hebt, kun je de match bevestigen; zo niet, dan is verwijderen meestal de juiste keuze.
- Een gedeelde of teambrede machine. Iemand anders kan een sleutel voor een legitiem doel hebben toegevoegd. Bevestig dit met de eigenaar voordat je hem verwijdert.
- Een deployment- of automatiseringssetup. Als een sleutel door een gepland proces wordt gebruikt, kan verwijderen dat proces stoppen. Stel eerst de afhankelijkheid vast.
- Een sleutel die je zelf hebt aangemaakt en vergeten. Titels en aanmaakdatums helpen vaak om het geheugen op te frissen. Als je hem kunt koppelen aan je eigen eerdere setup, kun je ervoor kiezen hem te behouden of te vervangen in plaats van te verwijderen.
Bij twijfel is de veiligere volgorde: identificeren, vervangen door een sleutel die je zelf beheert, en dan de oude vermelding verwijderen. Zo blijft een werkende weg behouden terwijl je de onbekende sluit.
Wat dit proces niet doet
Het verwijderen van een SSH-sleutel is een gerichte actie, geen volledige accountopschoning. Het doet het volgende niet:
- OAuth-applicaties of andere geautoriseerde integraties intrekken;
- deploy keys uit repositories verwijderen;
- bewijzen wie de sleutel heeft aangemaakt of waarom;
- bevestigen dat er geen andere toegangsweg bestaat.
Behandel elk daarvan als een afzonderlijke controle. Een audit is een reeks kleine, verifieerbare stappen, geen enkele schakelaar.
Waar een gebruikersnaamopzoeking past, en waar niet
Een openbare gebruikersnaamzoekopdracht kan je helpen zien waarmee een bekende handle op openbare platforms lijkt te zijn geassocieerd. Dat is nuttige context wanneer je een identiteit of een online voetafdruk probeert te begrijpen. Het is geen manier om GitHub-accountinstellingen te inspecteren, en het kan je niet vertellen wie eigenaar is van een SSH-sleutel. TraceSeek, de app die door TruthsSeek wordt behandeld, controleert bekende openbare gebruikersnamen op 3.000+ platforms en geeft een eerste scan in 20-30 seconden, waarbij de eerste scan gratis is. Het beheert geen GitHub-instellingen, en een openbare match is een aanwijzing, geen bewijs van eigenaarschap.
Referenties veilig behandelen
Publiceer nooit een privésleutel, token of volledige referentie in een chat, issue, screenshot of forumpost. Als je hulp nodig hebt bij het identificeren van een sleutel, deel dan alleen niet-geheime details zoals de titel of de zichtbare fingerprint, en alleen met iemand die je vertrouwt. Als je vermoedt dat een sleutel is blootgesteld, is het verwijderen uit het account één stap; alles wat ervan afhing roteren is een afzonderlijke beslissing die je bewust moet nemen.