SSH kulcs generálás
A HelloHost szerverekhez jelszó nélküli, kulcs-alapú SSH hitelesítést használunk. Ehhez szükséged van egy SSH kulcspárra: egy privát kulcsra (soha nem hagyja el a gépedet) és egy publikus kulcsra (ezt töltöd fel a HelloHost felületre).
Ez a dokumentum végigvezet a kulcs létrehozásán macOS, Linux és Windows rendszeren, és megmutatja hogyan add hozzá a HelloHost-hoz.
Miért ed25519?
Három algoritmust támogat az OpenSSH: RSA, ECDSA és ed25519. A HelloHost ed25519-et használ és ezt ajánljuk:
- Kisebb kulcsméret (68 karakter a publikus), ugyanakkor erősebb mint egy 3072-bites RSA
- Gyorsabb a kulcs kiállítás és a hitelesítés
- Modern, biztonságos szabvány – a GitHub és a GitLab is alapértelmezetten ezt javasolja
- OpenSSH 6.5 óta (2014) támogatott – minden modern rendszer tudja
Ha van már RSA kulcsod, továbbra is működik, de új kulcsnál mindig ed25519-et hozz létre.
Kulcs generálása macOS / Linux alatt
Nyiss egy terminált és futtasd:
ssh-keygen -t ed25519 -C "nev@hellohost"
A -C opció a kulcshoz tartozó kommentár – az email címed vagy egy azonosító, ami megjelenik az authorized_keys fájlban, hogy később felismerd.
A parancs 3 kérdést tesz fel:
- Fájl útvonala –
[Enter]megnyomásával fogadd el az alapértelmezett~/.ssh/id_ed25519-et. Ha több kulcsod is lesz, adj különálló nevet (pl.~/.ssh/hellohost_ed25519). - Passphrase (jelmondat) – erősen ajánlott megadni. Ha a privát kulcsodhoz valaki hozzáfér, a passphrase egy extra védelmi réteg. Ne spórolj vele.
- Passphrase megerősítése – írd be újra.
A parancs végén ezt látod:
Your identification has been saved in /Users/te/.ssh/id_ed25519
Your public key has been saved in /Users/te/.ssh/id_ed25519.pub
id_ed25519– a privát kulcs. Soha ne oszd meg, ne commiteld git-be, ne másold át üzeneten.id_ed25519.pub– a publikus kulcs. Ezt töltöd fel a szerverre / HelloHost-ra.
Kulcs generálása Windows alatt
Windows 10/11-en már beépített OpenSSH kliens van, így nincs szükség külső eszközre.
PowerShell / Windows Terminal
Nyiss egy PowerShell ablakot és futtasd:
ssh-keygen -t ed25519 -C "nev@hellohost"
A folyamat ugyanaz, mint macOS / Linux alatt. A kulcsok a C:\Users\<felhasznalonev>\.ssh\ mappába kerülnek.
Ha Git for Windows-t használsz, a Git Bash terminálban is futtathatod ugyanezt a parancsot, ugyanúgy működik.
PuTTY (régi verziók)
Ha valamiért PuTTY-t használsz (pl. régebbi Windows), a PuTTYgen alkalmazással készítheted el a kulcsot:
- Indítsd el a PuTTYgen-t
- Válaszd az EdDSA típust, az
Ed25519 (255 bits)görbével - Kattints a Generate gombra, mozgasd az egeret a terület felett entrópiához
- Add meg a passphrase-t
- Save private key – mentse
.ppkformátumban (PuTTY saját formátuma) - A felső szövegdobozban megjelenik a publikus kulcs OpenSSH formátumban – ezt másold ki
Bővebben a PuTTY használatáról: SSH használat Windows-on.
Kulcs hozzáadása az ssh-agent-hez
Az ssh-agent a memóriában tartja a privát kulcsod passphrase-ét, így a session során nem kell újra és újra beírnod.
macOS
macOS Keychain-be mentve a passphrase perzisztens marad (reboot után is):
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Linux
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Ha a session lejár, újra be kell írnod. Perzisztens megoldáshoz állítsd be a ~/.ssh/config-ban (lásd alább).
Windows (PowerShell)
Windows-on először engedélyezni kell az OpenSSH Authentication Service-t:
# Rendszergazda PowerShell
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Ezután a szokásos parancs:
ssh-add $env:USERPROFILE\.ssh\id_ed25519
Publikus kulcs feltöltése a HelloHost-ra
- Jelentkezz be a cloud.hellohost.io felületre
- Menj egy szerver oldalára → SSH Keys tab
- Kattints az Add SSH Key gombra
- Name: egy felismerhető név (pl.
macbook-pro,home-desktop) - Public Key: illeszd be a publikus kulcs tartalmát
A publikus kulcs tartalmát így másold ki:
macOS:
pbcopy < ~/.ssh/id_ed25519.pub
Linux (Wayland/X11):
xclip -selection clipboard < ~/.ssh/id_ed25519.pub
# vagy
wl-copy < ~/.ssh/id_ed25519.pub
Windows PowerShell:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard
Majd Ctrl+V / Cmd+V a HelloHost űrlapba.
A publikus kulcs egyetlen sor, ezzel kezdődik: ssh-ed25519 AAAAC3... és végződik a kommentáriddal. Ne ékezetes karakterekkel mókolj, és soha ne illeszd be a privát kulcsot (id_ed25519, prefix nélkül).
Mentés után néhány másodpercen belül megjelenik a szerveren, és próbálkozhatsz az SSH bejelentkezéssel:
ssh -p <port> <user>@<szerver-ssh-host>
A portot és a hostnevet a szerver oldalán a Configuration szekcióban találod.
~/.ssh/config – host aliasok
Ha több szerverhez is csatlakozol, vagy nem default porton mennek, érdemes a ~/.ssh/config-ot használni. Windows alatt a C:\Users\<user>\.ssh\config helyen.
Példa:
Host wphu
HostName 2a01-4f9-5a-4651--108.ssh.hellohost.io
Port 10009
User root
IdentityFile ~/.ssh/id_ed25519
AddKeysToAgent yes
UseKeychain yes
Ezután elég:
ssh wphu
Az AddKeysToAgent yes + UseKeychain yes beállítás miatt az első bejelentkezésnél a passphrase-t beírod, utána a keychain megjegyzi.
Biztonsági checklist
- Passphrase használata – ne legyen jelszó nélküli kulcsod (legalább 12 karakter)
- ed25519 algoritmus – ne RSA-1024, ne DSA
- Privát kulcs jogosultság –
~/.ssh/id_ed25519legyen600(csak te olvashatod, senki más) - Authorized_keys ellenőrzése – a szerveren néha nézd át, hogy csak a várt kulcsok vannak-e
- Forgó kulcsok – évente új kulcsot, régiek törlése a HelloHost SSH Keys listából
- Privát kulcs NE legyen git-ben, felhő szinkronban, üzenetben, pendrive-on
Hibák és megoldásaik
"Permission denied (publickey)"
- A publikus kulcs nincs (még) hozzáadva a szerverhez → ellenőrizd a HelloHost SSH Keys tabot
- A kliens nem a megfelelő privát kulcsot küldi →
ssh -v ...indítással láthatod, melyik kulcsokat próbálja; megoldás:~/.ssh/config-banIdentityFileexplicit megadása - A privát kulcs jogosultsága túl nyitott →
chmod 600 ~/.ssh/id_ed25519
"Bad owner or permissions on /home/.../.ssh/authorized_keys"
Az SSH szigorú a jogosultságokkal a szerveren:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
"Could not open a connection to your authentication agent"
Az ssh-agent nem fut. Lásd a fenti ssh-agent szekciót.
Kulcs típus hiba ("no matching host key type found")
Régi SSH kliens nem ismer ed25519-et. Frissítsd a kliensoldali OpenSSH-t, vagy ideiglenes megoldásként a ~/.ssh/config-ba:
Host <név>
HostKeyAlgorithms +ssh-rsa,ssh-ed25519
Következő lépés
Windows alatt egy teljes gyakorlati útmutató az SSH használathoz: SSH használat Windows-on.