name: projektveckor-ssh-hemma-windows-wsl
description: Hjälp för att få ssh hemma att fungera mot hemmaservern från BETTYS-LAPTOP Windows (PowerShell/Windows OpenSSH) och från WSL (Linux OpenSSH), inklusive var nycklar/config/known_hosts ligger, hur man verifierar vilken nyckel som används, hur man lägger till pubkey via Taildrop, och felsökning av hostkey/permission denied/wrong key/SSH-agent.
Skill: SSH hemma (Windows + WSL)
Använd den här skillen när en användare vill ansluta till hemmaservern med ssh hemma och fastnar i skillnader mellan Windows och WSL (nyckelplatser, ~/.ssh/config, agent, filrättigheter, host keys).
Canonical runbook
docs/runbooks/runbook-ssh-hemma-windows-wsl.md
Installera globalt (valfritt)
Om du vill att skillen ska vara global (inte bara repo-lokal), kopiera mappen till din Codex-home:
- Windows:
%USERPROFILE%\.codex\skills\projektveckor-ssh-hemma-windows-wsl\ - WSL/Linux:
~/.codex/skills/projektveckor-ssh-hemma-windows-wsl/
Först: samla minsta nödvändiga fakta (ställ frågor)
Fråga alltid innan du föreslår fixar:
- Kör användaren
sshi Windows (PowerShell/Terminal) eller i WSL? - Vilket felmeddelande får de (exakt rad)?
- Har de redan en
Host hemmai SSH config (och i vilken fil)? - Är anslutningen via Tailscale (Tailnet) och vad är
HostNametänkt att vara (hostname eller Tailscale-IP)?
Be om output (klistra in) från rätt miljö:
ssh -vvv hemmassh -G hemma(för att se effektivUser/HostName/IdentityFile)
Snabb påminnelse: skillnader Windows vs WSL
- Windows OpenSSH använder normalt:
%USERPROFILE%\\.ssh\\config%USERPROFILE%\\.ssh\\known_hosts%USERPROFILE%\\.ssh\\<nycklar>
- WSL OpenSSH använder normalt:
~/.ssh/config~/.ssh/known_hosts~/.ssh/<nycklar>
- Windows och WSL har i praktiken olika SSH-agenter och olika “nyckel-listor”.
Säkerhet
- Be aldrig om privatnyckelns innehåll.
- Be max om publik nyckel (
*.pub) och kommandoutskrifter. - Om någon råkar klistra in privatnyckel: be dem rotera nyckeln direkt.
Få ssh hemma att fungera (procedur)
1) Säkerställ att rätt config-fil används
- Om de kör i Windows: redigera
%USERPROFILE%\\.ssh\\config - Om de kör i WSL: redigera
~/.ssh/config
Be dem lägga till (eller verifiera) ett host-block med:
HostName <hemma-hostname-eller-tailscale-ip>User <user>IdentityFile <path-till-privatnyckel>IdentitiesOnly yes(för att undvika “fel nyckel” från agenten)
2) Verifiera “vilken nyckel” som faktiskt används
Leta i ssh -vvv efter:
identity file ...(vilka filer den försöker läsa)Offering public key: ...(vilken pubkey som erbjuds)Authentication succeeded (publickey)(vilken som accepteras)
Om fel nyckel erbjuds:
- Sätt/behåll
IdentitiesOnly yes - Sätt explicit
IdentityFile ... - Be dem köra
ssh-add -D(i samma miljö somsshkörs) och testa igen
3) Om pubkey inte finns på servern: lägg till via Taildrop
Mål: få in klientens *.pub i serverns ~/.ssh/authorized_keys.
Be användaren:
- Skapa ny nyckel i rätt miljö (Windows eller WSL).
- Skicka endast
.pubvia Taildrop till servern. - På servern: appenda pubkey till
~/.ssh/authorized_keysoch säkra permissions:mkdir -p ~/.ssh && chmod 700 ~/.sshcat /path/till/pubkey.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys
4) Om det fortfarande blir “Permission denied (publickey)”
Triagera i den här ordningen:
- Fel
Useri config (nyckeln ligger på annan användare). - Fel
HostName(du når fel maskin). - Fel nyckel (verifiera med
ssh -vvv). - Permissions på servern (
~/.sshochauthorized_keys).
Vanliga fel och åtgärder (kort)
REMOTE HOST IDENTIFICATION HAS CHANGED!:- Verifiera att host key verkligen ändrats (out-of-band), kör
ssh-keygen -R hemma, testa igen.
- Verifiera att host key verkligen ändrats (out-of-band), kör
WARNING: UNPROTECTED PRIVATE KEY FILE!(ofta WSL):- Kör
chmod 600 ~/.ssh/<nyckel>ochchmod 700 ~/.ssh, undvik nycklar via/mnt/c/....
- Kör
- “Wrong key” / många keys erbjuds:
IdentitiesOnly yes, explicitIdentityFile, töm agenten medssh-add -D.
- Agent-förvirring:
- Kör
ssh-add -li samma miljö somssh. - I WSL: kontrollera
echo $SSH_AUTH_SOCK(ska inte vara tom).
- Kör
När du ska uppdatera runbooken
Om du hittar ett återkommande fel (ny Tailscale/Taildrop-variant, ny standardplats för mottagna filer, eller ny typ av hostkey-problem), uppdatera:
docs/runbooks/runbook-ssh-hemma-windows-wsl.md