Jonkun pitää päästä palvelimelle tänä iltana, ja kirjautumistietojen on tavoitettava hänet heti. Houkutus on liittää yksityinen avain tai root-salasana Slackiin. Jokainen viesti, jonka kautta avain kulkee, säilyttää siitä kopion. Siksi parempi reitti on vanheneva kertakäyttölinkki: salaisuus haetaan kerran, ja sen jälkeen se on poissa.
Linkki on kuitenkin vain toimitusvaihe. Ennen kuin luot sellaisen, valitse oikeat lähetettävät kirjautumistiedot, rajaa ne tehtävään ja päätä, miten poistat ne. Tämä opas käy läpi kaiken tämän ja kertoo myös, mitä palvelimen käyttötietojen jakamiseen tarkoitettuun kertakäyttölinkkiin kannattaa laittaa ja mitä jättää pois.
Mitä SSH-kirjautumistietoja oikeastaan jaat?
SSH-pääsy voi perustua neljään eri asiaan, ja niiden jakamisessa pätevät hyvin erilaiset säännöt.
| Kirjautumistieto | Mikä se on | Saako sitä koskaan siirtää? |
|---|---|---|
| Julkinen avain | Puolisko, jonka palvelin tallentaa | Kyllä, vapaasti. Se ei ole salainen. |
| Yksityinen avain | Puolisko, joka on käyttäjällä | Vain jos se on luotu vastaanottajaa varten, ja vain kerran |
| Salasana | Jaettu merkkijono, jonka palvelin tarkistaa | Kerran, tilapäisenä arvona, jonka vaihdat |
| SSH-varmenne | Varmentajasi allekirjoittama avain, jolla on voimassaoloaika | Varmenne ei ole salainen, sen takana oleva avain on |
Paras luovutus on sellainen, jossa mitään salaista ei siirretä. Jos
vastaanottajalla on jo SSH-avainpari, pyydä häneltä julkinen avain,
lisää se oikean tilin tiedostoon ~/.ssh/authorized_keys ja pyydä
häntä muodostamaan yhteys. Kun poistat tuon yhden rivin myöhemmin, hänen
pääsynsä päättyy.
Luo hänelle oma avain, jos hänellä ei ole avainta eikä hän voi tehdä sellaista. Älä koskaan lähetä omaa jokapäiväistä yksityistä avaintasi. Vastaanottajaa varten luodun avaimen oikeudet voi rajata, sen käyttöä voi seurata lokista ja sen voi poistaa koskematta mihinkään muuhun.
Suosi varmenteita tai hallittua pääsyä toistuviin tarpeisiin. Jos sama ihminen tarvitsee pääsyä yhä uudelleen, toistuvat kertakäyttöiset luovutukset ovat väärä työkalu. Kun käytät lyhytaikaista SSH-varmennetta tai pääsynhallintatyökalua, kuten Teleportia tai Tailscale SSH:ta, vanheneminen kuuluu itse kirjautumistietoon eikä ole jälkikäteen toimitukseen lisätty kerros.
Rajaa kirjautumistiedot ennen jakamista
Mitä tahansa lähetätkin, tee siitä niin suppea kuin tehtävä sallii:
- Yksi tili, yksi palvelin. Lisää avain palvelutilille, joka omistaa työn, ei root-tilille, ja vain kyseiselle koneelle.
- Rajoita, mitä avaimella voi tehdä, tiedoston
authorized_keysasetuksilla, kutenfrom="203.0.113.5",no-port-forwardingtaicommand=-kääre, jos tehtävä on yksi skripti. - Anna salasanalle käyttöikä. Jos jaat salasanan, käytä komentoa
passwd -etai alustan vastaavaa toimintoa, jotta vastaanottajan on vaihdettava salasana ensimmäisellä kirjautumisella, ja suunnittele tilin poistaminen käytöstä tiettynä päivänä. - Kirjoita päättymispäivä muistiin ennen kuin lähetät mitään. ”Kun työ on valmis” ei ole päivämäärä.
Näin jaat SSH-kirjautumistiedot vanhenevalla linkillä
- Varmista vastaanottaja kanavalla, johon jo luotat: tukipyynnössä, tutussa sähköpostiketjussa tai puhelussa. Useimmiten väärään paikkaan päätyneet kirjautumistiedot johtuvat samannäköisestä osoitteesta tai automaattisesti täydennetystä nimestä.
- Liitä vain salaisuus kertakäyttöisen salaisen linkin työkaluun. Yksityisen avaimen kohdalla se tarkoittaa koko PEM-lohkoa eikä mitään muuta. LinkPilotissa teksti salataan selaimessasi ennen tallennusta, joten palvelulla on aina vain salatekstiä, ja purkuavain on siinä URL-osoitteen osassa, jota selaimet eivät lähetä palvelimille.
- Sovita voimassaoloaika tarpeeseen. Yksi tunti, jos vastaanottaja odottaa, 24 tuntia, jos hän on eri aikavyöhykkeellä, ja seitsemän päivää vain silloin, kun siihen on todellinen syy. Linkki tuhoutuu myös ensimmäisellä avauksella, joten voimassaoloaika on varakeino eikä pääasiallinen suoja.
- Lisää salalause Pro-tilillä, jos kirjautumistiedot ovat arkaluonteisia, ja välitä salalause eri kanavaa pitkin. Pro-paketin tarkastuslokista näet myös, milloin sisältö näytettiin.
- Lähetä linkki ja yhden rivin selitys sen tarkoituksesta, mutta älä liitä mukaan yhteystietoja.
- Lähetä yhteystiedot erillisessä viestissä: palvelin tai osoite, portti, käyttäjätunnus ja tunnistautumistapa. Mikään niistä ei ole yksinään salainen, mutta yhdessä avaimen kanssa ne muodostavat koko kirjautumisen.
Jos linkki ilmoittaa, että se on jo avattu, ja vastaanottaja sanoo, ettei avannut sitä, älä jää väittelemään. Oleta, että kirjautumistiedot ovat vuotaneet, poista avain tai vaihda salasana ja luo uudet.
Kertakäyttölinkki palvelimen käyttötietojen jakamiseen
Kysymys siitä, mitä salaisuuden sisään kuuluu, nousee esiin joka kerta. Hyvä sääntö on, että linkki sisältää sen, mitä hyökkääjä ei voi arvata, ja tavallinen viesti sen, minkä hän voisi arvata.
Kertakäyttölinkkiin:
- Yksityinen avain tai tilapäinen salasana
- Avaimen salalause, jos sellainen asetettiin avainta luotaessa
- Ei mitään muuta
Tavalliseen viestiin, erikseen lähetettynä:
- Palvelimen nimi tai IP-osoite ja portti
- Tili, jolla kirjaudutaan
- Käytetäänkö avainta vai salasanaa
- Palvelimen avaimen sormenjälki, jotta vastaanottaja voi varmistaa palvelimen ensimmäisellä yhteydellä
- Lyhyt huomautus siitä, mihin pääsy on tarkoitettu ja milloin se päättyy
Älä laita kumpaankaan kuvakaappauksia tai päätelokeja. Kuvakaappaus toimivasta istunnosta sisältää usein tunnisteita, sisäisiä osoitteita ja muita käyttäjätunnuksia, joita ei koskaan ollut tarkoitus lähettää eteenpäin.
Auta vastaanottajaa tallentamaan avain turvallisesti
Turvallinenkin luovutus epäonnistuu, jos avain päätyy Lataukset-kansioon kaikille luettavilla oikeuksilla. Lähetä nämä ohjeet yhteystietojen mukana:
# save the key, then lock it down
chmod 600 ~/.ssh/acme_deploy
ssh-add ~/.ssh/acme_deploy
# verify the host key fingerprint against the one you were sent
ssh -i ~/.ssh/acme_deploy deploy@203.0.113.5
Pyydä häntä avaamaan salainen linkki vasta, kun hän on valmis käyttämään sitä, laitteella, jota hän hallitsee, ja yhteydellä, johon hän luottaa. Jos linkin avaa jaetulla koneella ”vain tarkistaakseen, että se toimii”, koneen leikepöytähistoriaan jää kopio.
Varmista ja sulje sitten aikaikkuna
Kun pääsyn aikaikkuna on vielä auki, pyydä vastaanottajaa testaamaan juuri se yhteys, jota hän tarvitsee, ja vahvistamaan, että tehtävä toimii. Älä laajenna oikeuksia saadaksesi testin läpi, vaan korjaa rajaus.
Kun työ on valmis:
- Poista julkinen avain tiedostosta
authorized_keys, poista tili käytöstä tai anna varmenteen vanhentua aikataulun mukaan. - Vaihda kaikki, mikä kulki kirjautumistietojen mukana, myös tilapäinen salasana, joka piti vaihtaa ensimmäisellä kirjautumisella mutta jota ei vaihdettu.
- Käy läpi
auth.logtai muu SSH-tarkastuslähteesi ja etsi yhteyksiä sovitun ajan ulkopuolelta tai odottamattomista osoitteista. - Kirjaa ylös, kenellä oli mitä ja mistä mihin asti. Kirjaus jää, kirjautumistiedot eivät.
Linkin voimassaoloaika rajaa, kuinka kauan salaisuuden pystyi hakemaan. Kirjautumistietojen voimassaoloaika rajaa, kuinka kauan niitä voi käyttää. Tarvitset molemmat, ja jälkimmäinen on se, joka unohtuu.
