Kuinka korjata "Käyttöoikeus evätty (julkinen avain)" GitHub SSH:ssa

GitHubin nykyinen SSH-vianmääritysdokumentaatio, joka on tarkistettu 13. syyskuuta 2026, käsittelee edelleen Permission denied (publickey)todennusvirheenä seuraavaa: GitHub hylkäsi SSH-yhteyden, koska se ei hyväksynyt käyttökelpoista julkista avainta esittämällesi tilille ja yhteydelle. Nopein tapa korjata tämä on varmistaa yhteys tietyssä järjestyksessä sen sijaan, että avaimet poistetaan välittömästi tai luodaan uusia. GitHubin virallinen julkinen avain (Permission denied) -vianmäärityssivu suosittelee palvelimen, SSH-käyttäjän, tarjotun avaimen ja sen tarkistamista, onko tiliisi liitetty vastaava julkinen avain.

Hyvällä korjauksella on kaksi havaittavaa tulosta. Ensinnäkin ssh -T git@github.comse tunnistaa GitHub-tilin, jota aiot käyttää, ja raportoi onnistuneesta todennuksesta. Toiseksi varsinainen repositorion komento – kuten git fetch, git pull, git pushtai git clone– toimii sen repositorion kanssa, johon sinulla on valtuudet käyttää. Vain ensimmäisen testin läpäiseminen todistaa SSH-todennuksen, ei repositorion käyttöoikeuksia.

Nopea diagnostiikkatarkistuslista

TarkistaTerveellinen tulosJos se epäonnistuu
Etä-URL-osoiteKäyttötarkoituksetgit@github.com:OWNER/REPOSITORY.gitKorjaa isäntä- tai SSH-käyttäjätiedot ennen avainten vaihtamista
Paikalliset avaintiedostotTuettu julkinen/yksityinen avainpari on olemassaLuo uusi avainpari vain, jos sinulla ei ole sellaista, jota aiot käyttää.
SSH-agenttissh-add -l -E sha256luettelee tarkoitetun avaimenKäynnistä agentti ja lisää yksityinen avain
GitHub-tiliVastaava julkinen avain näkyy SSH- ja GPG-avainten alla.Lisää julkinen avain oikealle tilille; valtuuta se kertakirjautumiseen tarvittaessa.
TodennustestiGitHub tervehtii odotettua käyttäjätunnustaKäytä yksityiskohtaista SSH-tulostetta nähdäksesi, mitä avainta todellisuudessa tarjotaan
Arkiston toimintaNouto, vetäminen, työntäminen tai kloonaaminen onnistuuTarkista tietovaraston käyttöoikeudet, tilin identiteetti, kertakirjautuminen, etäosoite tai verkkorajoitukset

1. Tarkista kohde, SSH-käyttäjä ja etäosoite

Ennen kuin kosket näppäimiin, varmista, että olet yhteydessä GitHub.com-sivustoon ja että SSH-käyttäjätunnus on kirjaimellisesti git. GitHub dokumentoi, että SSH-yhteyksien GitHub.com-sivustoon on käytettävä käyttäjää git, ei henkilökohtaista GitHub-käyttäjätunnustasi. Komennon, kuten , ssh -T yourname@github.comodotetaan epäonnistuvan.

git remote -v
ssh -vT git@github.com

Tavallisen GitHub.com SSH -etäpalvelimen URL-osoitteen pitäisi näyttää tältä:

git@github.com:OWNER/REPOSITORY.git

Jos etäkäyttö on väärä, korjaa se Gitin etäkäyttöasetuksilla tunnistetietojen uudelleenluomisen sijaan:

git remote set-url origin git@github.com:OWNER/REPOSITORY.git

Vältä myös tavallisten Git-komentojen suorittamista rajoitetuilla sudotai korotetuilla oikeuksilla. GitHub huomauttaa, että tämä voi saada Gitin toimimaan eri käyttäjäympäristössä ja siten käyttämään eri SSH-avaimia kuin määrittämäsi. Tässä vaiheessa tavoite on yksinkertainen: yksityiskohtaisen tulosteen pitäisi näyttää yhteysyritys github.comporttiin 22, ellet ole tarkoituksella määrittänyt myöhemmin kuvattua HTTPS-portin kiertotietä.

2. Varmista, että käyttökelpoinen avain on olemassa ja ladattu

Tarkista paikallinen SSH-hakemistosi ennen uuden luomista. GitHubin nykyiset ohjeet suosittelevat ensin olemassa olevan tuetun avainparin etsimistä.

ls -al ~/.ssh
Päätenäkymä, jossa luetellaan olemassa oleva id_ed25519-yksityinen avain ja id_ed25519.pub-julkinen avain SSH-hakemistossa
Tarkista SSH-hakemistosta vastaava yksityinen avain ja julkinen avainpari ennen uuden avaimen luomista.

Yleisiä julkisen avaimen tiedostonimien oletusarvoja ovat id_ed25519.pub, id_ecdsa.pubja id_rsa.pub. GitHub ei enää tue DSA-avaimia. Jos sinulla on jo avainpari, jota aiot käyttää GitHubissa, säilytä se ja jatka agentin tarkistusta.

ssh-add -l -E sha256

Terveessä tuloksessa luetellaan yksi tai useampi sormenjälki. Jos aiottua avainta ei ladata, käynnistä SSH-agentti ympäristösi mukaisesti ja lisää yksityinen avain:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Pääteikkunassa käynnistetään ssh-agent ja lisätään yksityisavain id_ed25519
Lataa yksityinen avain ssh-agenttiin, jotta SSH-asiakasohjelma voi tarjota sitä GitHub-todennuksen aikana.

Windowsissa tarkka agent-start-komento riippuu siitä, käytätkö Git Bashia, Windows OpenSSH:ta, PowerShelliä vai jotain muuta ympäristöä. GitHubin virallinen avainten luonti- ja ssh-agent-opas tarjoaa alustakohtaisia ​​ohjeita. Noudata käyttämäsi SSH-asiakasohjelman ohjeita; Git for Windowsin SSH:n ja Windows OpenSSH:n yhdistäminen on yleinen sekaannuksen lähde.

Jos sinulla ei ole avainparia

Luo sellainen vain, jos aiempi tarkistus osoittaa, ettei sinulla ole sopivaa avainta, jota haluat käyttää. GitHubin nykyiset ohjeet suosittelevat Ed25519:ää standardiksi ohjelmistoavaimeksi, jos sitä tuetaan:

ssh-keygen -t ed25519 -C "your_email@example.com"

Käytä salasanaa, jos se sopii turvallisuusvaatimuksiisi. SSH-agentti voi tallentaa lukitsemattoman yksityisen avaimen välimuistiin istuntoasi varten. Älä koskaan lataa tai liitä itse yksityisen avaimen tiedostoa GitHubiin; tiedosto, joka päättyy , .pubon tilin rekisteröintiin tarkoitettu julkinen avain.

3. Liitä vastaava julkinen avain oikeaan GitHub-tiliin

Pelkkä paikallinen avain ei riitä. GitHubilla on oltava vastaava julkinen avain, joka liittyy todennuksen kohteena olevaan tiliin. Näytä julkinen avain ja kopioi sitten koko rivi:

cat ~/.ssh/id_ed25519.pub

Avaa GitHubissa Asetukset , sitten SSH- ja GPG-avaimet , valitse Uusi SSH-avain tai Lisää SSH-avain , valitse todennusavain ja liitä julkinen avain. Nämä tunnisteet vastaavat GitHubin nykyistä virallista SSH-avaimen lisäämisdokumentaatiota .

GitHubin asetusnäkymä, jossa SSH- ja GPG-avaimet on valittu ja uutta todennusavainta lisätään
Lisää julkinen avain – ei yksityistä avainta – GitHub-tilille, jonka pitäisi todentaa SSH-yhteys.

Vertaile sormenjälkiä, kun et ole varma, mikä paikallinen avain vastaa GitHubin merkintää:

ssh-add -l -E sha256

Jos tietovarasto kuuluu organisaatiolle, joka käyttää SAML-kertakirjautumista, avaimen lisääminen tilillesi ei välttämättä riitä. GitHub dokumentoi, että SSH-avain voi myös vaatia organisaation valtuutuksen. Valitse Asetukset > SSH- ja GPG-avaimet ja valitse Määritä kertakirjautuminen avaimelle ja valtuuta asiaankuuluva organisaatio, kun kyseinen hallinta on käytettävissä. Katso GitHubin SSH-avaimen kertakirjautumisen valtuutusopas .

4. Testaa todennusta Gitistä riippumatta

Älä käytä git pushainoana testinä. Testaa SSH:ta suoraan:

ssh -T git@github.com
Pääte, jossa näkyy GitHub SSH -testikomento ja onnistuneen todennuksen tervehdys
Onnistunut SSH-testi tunnistaa todennetun GitHub-tilin ja vahvistaa, että avaintenvaihto toimii.

Onnistumisviestin tulisi tervehtiä GitHub-käyttäjätunnustasi ja selittää, että GitHub ei tarjoa käyttöoikeuksia komentotulkille. GitHub huomauttaa myös, että tämä testi voi päättyä tilakoodiin 1, vaikka todennus onnistuisi, joten arvioi sitä todennusviestin perusteella sen sijaan, että odottaisit normaalia interaktiivista komentotulkkia.

Jos testi päättyy edelleen Permission denied (publickey), suorita yksityiskohtaisessa tilassa:

ssh -vT git@github.com

Etsi rivejä, kuten Offering public key. Jos loki ei koskaan tarjoa odottamaasi avainta, ongelma on paikallisessa avaimen valinnassa tai agentin määrityksissä. Jos tarkoitettua avainta tarjotaan, mutta se hylätään, tarkista, onko kyseinen julkinen avain liitetty oikeaan GitHub-tiliin ja tarvitaanko kertakirjautumisvaltuutus.

Useita GitHub-tilejä: tarkista, mitä identiteettiä todellisuudessa käytetään

Jos käytät työ- ja henkilökohtaisia ​​tilejä samalla tietokoneella, onnistunut SSH-todennus voi silti päätyä väärälle tilille. GitHub dokumentoi käyttämällä IdentitiesOnly=yestai tiettyä tunnistetiedostoa SSH:n tarjoaman avaimen hallitsemiseksi. Kertaluonteista diagnostiikkaa varten:

ssh -v -o "IdentitiesOnly=yes" -i ~/.ssh/work_ed25519 git@github.com

Jos GitHub tervehtii väärää käyttäjätunnusta, olet löytänyt ristiriidan. Määritä erilliset avaimet tai isäntäaliakset sen sijaan, että poistaisit ja lisäisit avaimia toistuvasti uudelleen. GitHubin virallinen usean tilin opas käsittelee tätä tapausta yksityiskohtaisemmin.

5. Yritä repository-komentoa uudelleen ja vaihda lähestymistapaa vain, jos todisteet viittaavat muualle

Kun ssh -T git@github.comkäyttäjä on todennettu odotettuna käyttäjänä, yritä varsinaista arkistotoimintoa uudelleen:

git fetch origin
git pull
git push
Pääteikkuna, jossa näkyy GitHub SSH -kloonin onnistunut valmistuminen todennuksen jälkeen, on korjattu
Viimeinen laatutarkistus on varsinainen Git-operaatio: onnistuneen todennuksen pitäisi johtaa onnistuneeseen repositorion käyttöön, kun tilillä on siihen käyttöoikeudet.

Jos SSH-todennus onnistuu, mutta Git raportoi nyt tietovarastokohtaisen käyttöoikeusvirheen, lopeta SSH-avaimen muuttaminen. Siinä vaiheessa avain on jo tehnyt tehtävänsä. Varmista, että todennetulla tilillä on pääsy tietovarastoon, että omistaja ja tietovaraston nimi etä-URL-osoitteessa ovat oikein ja että organisaatio on myöntänyt vaaditun roolin. GitHubin erillinen tietovaraston käyttöoikeuksien vianmäärityssivu selittää tapauksen, jossa avain kuuluu tilille, jolla ei ole käyttöoikeutta.

Jos portti 22 on estetty

Palomuuri tai välityspalvelin voi estää kelvollista SSH-kokoonpanoa pääsemästä GitHubiin portin 22 kautta. Testaa GitHubin dokumentoitua SSH-over-HTTPS-päätepistettä:

ssh -T -p 443 git@ssh.github.com

Tässä suorassa portti-443-testissä isäntänimi on ssh.github.com, ei . Jos se toimii, GitHub dokumentoi tämän SSH-kokoonpanon:github.com

Host github.com
    Hostname ssh.github.com
    Port 443
    User git

Testaa sitten uudelleen ssh -T git@github.com. Katso GitHubin SSH-opas portin 443 kautta . Tämä kiertotapa ei koske kaikkia GitHub Enterprise -ympäristöjä, ja välityspalvelimet voivat silti häiritä.

Mistä tietää, milloin lopettaa saman korjauksen kokeileminen

Mitä havaitsetMitä se tarkoittaaSeuraava siirto
ssh-add -lei näytä tarkoitettua avaintaAsiakas ei pysty tarjoamaan oikeaa yksityistä avaintaKorjaa agentti tai avainpolku
Yksityiskohtainen SSH ei koskaan näy Offering public keyaiotulla avaimellaSSH-valinta on väärinKäytä -i, IdentitiesOnly=yestai korjaa~/.ssh/config
Aiottu avain tarjotaan, mutta hylätäänGitHub ei hyväksy kyseistä avainta yritetylle identiteetille.Tarkista ladattu julkinen avain, kohdetili ja kertakirjautumisen valtuutus
SSH tervehtii väärää GitHub-käyttäjätunnustaEri tilin avainta käytetäänErota tiliavaimet ja valitse erikseen haluttu identiteetti
SSH onnistuu, mutta repositorio hylkää push- tai fetch-pyynnötTodennus toimii; ongelmana on nyt tietovaraston todennus tai URL-osoiteTarkista tietovaraston käyttöoikeudet ja etäomistajuus
Portti 22 ei voi muodostaa yhteyttä ollenkaanVerkko saattaa estää tavallisen SSH:n käytön.Testaa porttia 443 tai käytä HTTPS:ää

Yleisiä korjauksia, jotka usein vievät aikaa

Avainten generointi toisensa jälkeen tarkistamatta, mitä SSH tarjoaa. Useammat avaimet voivat vaikeuttaa valintaa. Käytä ensin ssh -vTja ssh-add -l -E sha256.

GitHub-käyttäjänimesi käyttäminen ennen @github.com. GitHubin SSH-päätepiste odottaa SSH-käyttäjää git. GitHub-identiteettisi määritetään GitHubin tunnistaman julkisen avaimen perusteella.

Yksityisen avaimen lataaminen. Älä tee tätä. GitHub tarvitsee julkisen .pubarvon; yksityinen avain pysyy koneellasi tai hyväksytyssä avainsäilössä.

Onnistunut SSH-testi takaa push-yhteyden. Se todistaa tilin todennuksen. Säilön valtuutus on erillinen tarkistus.

Kertakirjautumisen (SSO) ohittaminen. Organisaation resurssit saattavat vaatia ylimääräisen SSH-avaimen valtuutuksen, vaikka avain olisi henkilökohtaisella tililläsi.

Git-komentojen käyttö järjestelmänvalvojana. Gitin suorittaminen toisena käyttöjärjestelmän käyttäjänä voi muuttaa käytettävää kotihakemistoa, SSH-kokoonpanoa, agenttia ja avaimia.

Kun HTTPS on parempi vastaus

SSH:n käyttö ei ole pakollista. GitHub tukee myös HTTPS-etäyhteyksiä. Jos lukittu yritysverkko, hallittu päätepistekäytäntö tai välityspalvelin tekee SSH:n käytöstä epäkäytännöllistä, tietovaraston etäyhteyden vaihtaminen HTTPS:ään voi olla yksinkertaisempaa kuin verkon vastustaminen. Kyseessä on todennusmenetelmän muutos, ei SSH-kokoonpanon korjaus, joten käytä sitä silloin, kun ympäristösi tekee SSH:sta ei-toivotun, äläkä piilota ratkaisematonta avainristiriitaa.

SSH:n osalta luotettavin pysähdyskohta on näyttöön perustuva: odotettu avain ladataan, GitHub tunnistaa sen odotetuksi tiliksi, organisaatio valtuuttaa sen tarvittaessa ja varsinainen Git-operaatio onnistuu. Jos jokin näistä tarkistuksista epäonnistuu, muuta vain epäonnistunutta tasoa. Tämä pitää vianmääritysprosessin hallinnassa ja välttää toimivien avainten tarpeettoman korvaamisen.

Viralliset viitteet

Jätä kommentti

Kuinka korjata "ENOSPC: Järjestelmän raja tiedostojen tarkkailijoille saavutettu" Linuxissa

Kuinka korjata "ENOSPC: Järjestelmän raja tiedostojen tarkkailijoille saavutettu" Linuxissa

Korjaa Linux ENOSPC -tiedostojen tarkkailijan virheet tarkistamalla inotify-rajoitukset, etsimällä tarkkailijapainotteisia prosesseja, nostamalla rajoituksia turvallisesti ja tekemällä muutoksista pysyviä.

Kuinka korjata "Tailwind CSS Styles Not Update" -ongelma Vite React -sovelluksessa

Kuinka korjata "Tailwind CSS Styles Not Update" -ongelma Vite React -sovelluksessa

Korjaa Tailwind CSS -tyylien päivittymättömyys Vite Reactissa tarkistamalla Tailwind v4 -asetukset, CSS-tuonnit, lähteen tunnistus, dynaamiset luokat, HMR ja vanhentuneet välimuistit.

Kuinka korjata ModuleNotFoundError: Ei moduulia nimeltä 'pip' Python 3:ssa

Kuinka korjata ModuleNotFoundError: Ei moduulia nimeltä 'pip' Python 3:ssa

Korjaa Python 3:n ModuleNotFoundError-virhe pip-funktiolle Windowsissa, macOS:ssä ja Linuxissa ensurepip-komennolla, käyttöjärjestelmäpaketeilla, virtuaaliympäristöillä ja tulkkitarkistuksilla.

Kuinka korjata "Käyttöoikeus evätty (julkinen avain)" GitHub SSH:ssa

Kuinka korjata "Käyttöoikeus evätty (julkinen avain)" GitHub SSH:ssa

Korjaa GitHub SSH -käyttöoikeus evätty (julkinen avain) -ongelma tarkistamalla isäntä, aktiivinen SSH-avain, GitHub-tili, kertakirjautumisen valtuutus, etä-URL-osoite ja portin 22 käyttöoikeus.

Kuinka korjata "Git Push Rejected: Non-Fast-Forward" menettämättä muutoksia

Kuinka korjata "Git Push Rejected: Non-Fast-Forward" menettämättä muutoksia

Korjaa Gitin ei-pikakelausvirhe turvallisesti. Suojaa paikallinen työ, nouda etäcommitit, valitse yhdistäminen tai uudelleenpohjustaminen, ratkaise ristiriidat ja puske muutosten menettämättä.

Kuinka korjata "Nginx 502 Bad Gateway" -virhe, kun välityspalvelimena käytetään Node.js:ää

Kuinka korjata "Nginx 502 Bad Gateway" -virhe, kun välityspalvelimena käytetään Node.js:ää

Korjaa Nginx 502 Bad Gateway -virheet Node.js:n avulla ylävirran puolella tarkistamalla sovellusportti, NGINX-lokit, proxy_pass-osoite, säilöverkko, aikakatkaisut ja uudelleenlataus.

Kuinka korjata "Type 'null' ei ole määritettävissä tyypille" TypeScriptissä

Kuinka korjata "Type 'null' ei ole määritettävissä tyypille" TypeScriptissä

Korjaa TypeScriptin virhe ”Type 'null' ei ole määritettävissä tyypille” yhdistämistyypeillä, rajaamisella, oletusarvoilla ja turvallisilla väitteillä strictNullChecksin avulla.

Kuinka korjata "Prisma Client has not been generated yet" -virhe

Kuinka korjata "Prisma Client has not been generated yet" -virhe

Korjaa Prisma Clientin luontivirhe tarkistamalla generaattori, skeema, tulostepolku, importit, versiot, monorepo-asetukset ja käyttöönoton build-vaiheet.

Kuinka korjata "ERR_MODULE_NOT_FOUND" Node.js ESM -tuonneissa

Kuinka korjata "ERR_MODULE_NOT_FOUND" Node.js ESM -tuonneissa

Korjaa Node.js ERR_MODULE_NOT_FOUND ESM:ssä tarkistamalla tuontipolut, tiedostopäätteet, pakettien asennuksen, viennit, ESM-tilan ja puhtaat asennukset.

Kuinka korjata SSL-varmenneongelma: Paikallisen myöntäjän varmenteen haku epäonnistui Gitissä

Kuinka korjata SSL-varmenneongelma: Paikallisen myöntäjän varmenteen haku epäonnistui Gitissä

Korjaa Gitin virhe "paikallisen myöntäjän varmenteen haku epäonnistui" tunnistamalla luottamuksen taustajärjestelmä, asentamalla oikea CA-ketju ja pitämällä SSL-varmenteiden tarkistus päällä.