Miksi yksityinen SSH-avaimeni ei toimi Rahdissa?
Saatat tarvita SSH-avainparin, jos rakennus tehdään yksityisestä GitHub-repositoriosta.
Tämä artikkeli auttaa selvittämään, miksi avaimesi eivät toimi.
Kattava opas koko prosessiin, jossa SSH-avaimilla kloonataan yksityinen repositorio Rahdissa, löytyy oppaasta: Repository SSH Keys.
Yhteensopimattomat avaimet
SSH-avain ei välttämättä toimi useista syistä. Yksinkertaisin niistä on se, että yksityinen avain ei vastaa julkista avainta. Tämän voi tarkistaa luomalla julkisen avaimen uudelleen yksityisestä avaimesta komennolla:
Tarkista, että luotu julkinen avain vastaa käytössä olevaa avainta. Jotkin palvelimet luovat myös avaimen sormenjäljen. Voit luoda tämän sormenjäljen joko julkisesta tai yksityisestä avaimesta, ja sormenjälkien on vastattava toisiaan. Käytettävä komento on:
$ ssh-keygen -l -f repo-openshift-builder
2048 SHA256:ijP8/1P3ZSOBrJDD2PoCWmJceKd5JwDAmzmEqsH1itk openshift-source-builder/repo (RSA)
$ ssh-keygen -l -f repo-openshift-builder.pub
2048 SHA256:ijP8/1P3ZSOBrJDD2PoCWmJceKd5JwDAmzmEqsH1itk openshift-source-builder/repo (RSA)
Salalauseella suojattu avain
Toinen yleinen syy epäonnistumiseen on se, että yksityinen avain on suojattu salalauseella. Vaikka yksityisen avaimen suojaamista salalauseella suositellaan yleensä silloin, kun avainta säilytetään työasemalla, Rahdissa ei ole mekanismia salalauseen tallentamiseen, joten avaimen käyttö epäonnistuu. Tarkistaaksesi, onko yksityinen avain suojattu salalauseella, voit käyttää samaa yllä olevaa komentoa julkisen avaimen luomiseen. Jos avain on suojattu, komento pyytää salasanaa.
Muut muotovirheet
SSH-avaimen muoto on tarkasti määritelty. Yksityistä SSH-avainta voidaan pitää virheellisenä seuraavissa tapauksissa:
- Avain on koodattu DOS-muotoisilla rivinvaihdoilla. DOS/Windows-koneilla luoduissa tekstitiedostoissa on erilaiset rivinvaihdot kuin Unix/Linuxissa luoduissa tiedostoissa. DOS käyttää rivinvaihtona rivinpalautusta ja rivinsiirtoa (
\r\n), kun taas Unix käyttää pelkkää rivinsiirtoa (\n). Ratkaisu on käyttää työkalua kutendos2unixtai luoda avain uudelleen Linuxissa. - Avaimen otsikkoa (
-----BEGIN OPENSSH PRIVATE KEY-----) tai alatunnistetta (-----END OPENSSH PRIVATE KEY-----) ei ole kopioitu oikein. Sekä otsikon että alatunnisteen molemmissa päissä täytyy olla 5--merkkiä, ja alatunnisteen jälkeen täytyy olla rivinvaihto, eli tiedoston viimeinen merkki ei ole-vaan rivinvaihto (\n). Tämä ongelma syntyy yleensä kopioi-liitä-virheistä, kun avaintiedoston alkua tai loppua ei kopioida oikein, ja se on yleisimpien "format errors" -virheiden syy.
Yleissääntönä käytä komentoa ssh-keygen -l -f <file> tarkistaaksesi, että avaimen muotoilu on oikein.