GCP - Add Custom SSH Metadata
GCP - Voeg Aangepaste SSH Metadata By
Wysiging van die metadata
Metadatabewerking op 'n instansie kan lei tot beduidende sekuriteitsrisiko's as 'n aanvaller die nodige toestemmings verkry.
Insluiting van SSH-sleutels in Aangepaste Metadata
Op GCP, voer Linux-stelsels dikwels skripte uit van die Python Linux-gaskameromgewing vir Google Compute Engine. 'n Kritieke komponent hiervan is die rekenaar-daemon, wat ontwerp is om gereeld die instansiemetadatapunt vir opdaterings van die geagte SSH openbare sleutels te kontroleer.
Daarom, as 'n aanvaller aangepaste metadata kan wysig, kan hy die daemon 'n nuwe openbare sleutel laat vind, wat verwerk en geïntegreer word in die plaaslike stelsel. Die sleutel sal bygevoeg word in ~/.ssh/authorized_keys
lêer van 'n bestaande gebruiker of moontlik 'n nuwe gebruiker met sudo
-bevoegdhede skep, afhangende van die sleutel se formaat. En die aanvaller sal die gasheer kan kompromitteer.
Voeg SSH-sleutel by tot bestaande bevoorregte gebruiker
Ondersoek Bestaande SSH-sleutels op die Instansie:
Voer die bevel uit om die instansie en sy metadata te beskryf om bestaande SSH-sleutels te vind. Die relevante afdeling in die uitset sal onder
metadata
wees, spesifiek diessh-keys
sleutel.
Let op die formaat van die SSH-sleutels: die gebruikersnaam kom voor die sleutel, geskei deur 'n kolon.
Berei 'n tekslêer voor vir SSH-sleutelmetadata:
Berg die besonderhede van gebruikersname en hul ooreenstemmende SSH-sleutels op in 'n tekslêer genaamd
meta.txt
. Dit is noodsaaklik om die bestaande sleutels te behou terwyl nuwes bygevoeg word.
Genereer 'n Nuwe SSH-sleutel vir die Teiken Gebruiker (
alice
in hierdie voorbeeld):
Gebruik die
ssh-keygen
bevel om 'n nuwe SSH-sleutel te genereer, en verseker dat die kommentaarveld (-C
) ooreenstem met die teiken gebruikersnaam.
Voeg die nuwe openbare sleutel by in
meta.txt
, wat die formaat naboots wat in die instansie se metadata gevind word.
Werk die Instansie se SSH-sleutelmetadata by:
Pas die opgedateerde SSH-sleutelmetadata op die instansie toe deur die
gcloud compute instances add-metadata
bevel te gebruik.
Kry Toegang tot die Instansie met die Nuwe SSH-sleutel:
Verbind met die instansie met SSH deur die nuwe sleutel te gebruik, en kry toegang tot die skaal in die konteks van die teiken gebruiker (
alice
in hierdie voorbeeld).
Skep 'n nuwe bevoorregte gebruiker en voeg 'n SSH-sleutel by
As geen interessante gebruiker gevind word nie, is dit moontlik om 'n nuwe een te skep wat sudo
-bevoegdhede sal kry:
SSH-sleutels op projekvlak
Dit is moontlik om die reikwydte van SSH-toegang tot verskeie virtuele masjiene (VM's) in 'n wolk-omgewing te verbreed deur SSH-sleutels op projekvlak toe te pas. Hierdie benadering maak SSH-toegang moontlik tot enige instansie binne die projek wat nie uitdruklik projekwye SSH-sleutels geblokkeer het nie. Hier is 'n opgesomde gids:
Pas SSH-sleutels op Projekvlak Toe:
Gebruik die
gcloud compute project-info add-metadata
-bevel om SSH-sleutels vanmeta.txt
by die metadata van die projek te voeg. Hierdie aksie verseker dat die SSH-sleutels erken word regoor alle VM's in die projek, tensy 'n VM die "Blokkeer projekwye SSH-sleutels" opsie geaktiveer het.
SSH na Instansies met Projekwyde Sleutels:
Met projekwyde SSH-sleutels op hul plek, kan jy SSH na enige instansie binne die projek. Instansies wat nie projekwye sleutels blokkeer nie, sal die SSH-sleutel aanvaar en toegang verleen.
'n Direkte metode om SSH na 'n instansie te maak, is deur die
gcloud compute ssh [INSTANSIE]
-bevel te gebruik. Hierdie bevel gebruik jou huidige gebruikersnaam en die SSH-sleutels wat op projekvlak ingestel is om toegang te probeer verkry.
Verwysings
Last updated