SSH-felsökning
Den här guiden tar upp vanliga SSH-anslutningsproblem när du arbetar med GitLab på LNU.
Snabb verifiering
Section titled “Snabb verifiering”Testa din SSH-anslutning med:
ssh -T git@gitlab.lnu.seEtt lyckat svar visar: Welcome to Gitlab, @en999zz!
Nätverk att tänka på
Section titled “Nätverk att tänka på”Nätverket “LNU Guest” stödjer inte SSH. Byt till “Eduroam” istället.
Diagnostikkommandon
Section titled “Diagnostikkommandon”Några kommandon som hjälper dig identifiera problem:
ssh-add -l— visar aktiva SSH-nycklarssh-agent— verifierar om agenten körsls ~/.ssh/— visar sparade SSH-nycklarssh-add ~/.ssh/id_ed25519_gitlab_lnu— laddar in en nyckel i agenten
Vanliga “Permission denied”-problem
Section titled “Vanliga “Permission denied”-problem”Felet git@gitlab.lnu.se: Permission denied (publickey) beror oftast på en av tre orsaker:
Fel SSH-nyckel
Jämför ditt lokala fingeravtryck (ssh-add -l) med det som är sparat på GitLab under dina
kontoinställningar. De måste matcha.
SSH-agenten körs inte
Om ssh-add -l returnerar "Could not open a connection to your authentication agent", starta
agenten:
eval $(ssh-agent -s)Hur du slipper göra om detta varje gång skiljer sig åt mellan operativsystem:
Windows har en inbyggd ssh-agent-tjänst som sparar tillagda nycklar permanent, även efter
omstart — men den är avstängd som standard. Git Bash pratar dessutom som standard med sin egen
medföljande SSH-klient istället för Windows egen, så git push/git pull skulle ändå aldrig nå
den tjänsten om inte Git pekas om. Tre engångssteg löser båda delarna.
Aktivera tjänsten i PowerShell som administratör:
Get-Service ssh-agent | Set-Service -StartupType AutomaticStart-Service ssh-agentPeka om Git mot Windows egen SSH-klient, så att git push/git pull faktiskt pratar med samma
agent:
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"Ladda in nyckeln i Windows-agenten — ange hela sökvägen till ssh-add.exe, annars hittar Git Bash
sin egen medföljande variant istället för Windows egen:
/c/Windows/System32/OpenSSH/ssh-add.exe ~/.ssh/id_ed25519_gitlab_lnuNyckeln stannar nu kvar i agenten permanent, även efter omstart av datorn — du behöver aldrig köra
ssh-add igen, oavsett om du har ett Git Bash-fönster öppet eller inte.
Spara nyckeln i systemets nyckelring så laddas den in automatiskt varje gång du loggar in, utan att du behöver ange lösenfrasen på nytt:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_gitlab_lnuLägg även till UseKeychain yes under host-posten för gitlab.lnu.se i ~/.ssh/config (se
Installera Git).
De flesta skrivbordsmiljöer (GNOME, KDE) hanterar detta automatiskt via en inbyggd nyckelring. Sker
det inte automatiskt hos dig, lägg till följande i ~/.bashrc så startas agenten och nyckeln laddas
in automatiskt i varje nytt terminalfönster:
if [ -z "$SSH_AUTH_SOCK" ]; then eval $(ssh-agent -s) > /dev/null ssh-add ~/.ssh/id_ed25519_gitlab_lnu 2> /dev/nullfiNyckeln är inte inladdad
Om ssh-add -l visar "The agent has no identities" är agenten igång men saknar din nyckel.
Ladda in den manuellt:
ssh-add ~/.ssh/id_ed25519_gitlab_lnuVill du hellre slippa vara beroende av agenten alls, redigera ~/.ssh/config och lägg till en
IdentityFile-rad under host-posten för gitlab.lnu.se (se Installera Git)
— då använder SSH nyckeln direkt utan att en agent behöver ha laddat in den.