Üdvözöljük az SSH (Secure Shell) kulcsok beállításának végső útmutatójában. Ez az oktatóanyag bemutatja az SSH-kulcsok létrehozásának alapjait, valamint a több kulcs és kulcspár kezelésének módját.
Hozzon létre egy új SSH-kulcspárt
Nyisson meg egy terminált, és futtassa a következő parancsot:
ssh-keygen
A következő szöveget fogja látni:
Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):
Nyomja meg az Enter billentyűt a kulcsok alapértelmezett /home/username/.ssh
könyvtárba mentéséhez .
Ezután a rendszer kéri a jelszó megadását:
Enter passphrase (empty for no passphrase):
Javasoljuk, hogy itt adjon meg egy jelszót a további biztonság érdekében. Jelszó beállításával megakadályozhatja az illetéktelen hozzáférést a szervereihez és a fiókjaihoz, ha valaki valaha megkapja a magán SSH kulcsát vagy a számítógépét.
A jelszó megadása és megerősítése után a következőket látja:
Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/qRoWhRcIBTw0D4KpTUyK6YepyL6RQ2CQrtWsaicCb4 [email protected] The key's randomart image is: +---[RSA 2048]----+ | .o=+.... | |+.*o+o . | |+X.=o o | |@.=.oo . | |=O ...o S | |o.oo . . | |.E+ . . . . | |oo . ... + | |=.. .o. . . | +----[SHA256]-----+
Most már van egy nyilvános és privát SSH kulcspárja, amelyek segítségével elérheti a távoli szervereket és kezelheti a parancssori programok, például a Git hitelesítését.
Több SSH-kulcs kezelése
Bár jó gyakorlatnak tekinthető, hogy eszközönként csak egy nyilvános-magánkulcs pár van, néha több kulcsot is használnia kell, vagy unortodox kulcsnevek vannak. Például használhat egy SSH-kulcspárt a vállalata belső projektjeihez, de előfordulhat, hogy egy másik kulcsot használ az ügyfél szervereihez való hozzáféréshez. Ráadásul előfordulhat, hogy egy másik kulcspárt használ a saját privát szerver eléréséhez.
Az SSH kulcsok kezelése nehézkessé válhat, amint egy második kulcsot kell használnia. Hagyományosan ssh-add
a kulcsok tárolásához használná ssh-agent
, beírva az egyes kulcsok jelszavát. A probléma az, hogy ezt minden alkalommal meg kell tennie, amikor újraindítja a számítógépet, ami gyorsan unalmassá válhat.
Jobb megoldás a kulcsok hozzáadásának automatizálása, a jelszavak tárolása és annak meghatározása, hogy mely kulcsokat kell használni bizonyos szerverek elérésekor.
SSH config
Írja be az SSH-t config
, amely egy felhasználónkénti konfigurációs fájl az SSH-kommunikációhoz. Hozzon létre egy új fájlt: ~/.ssh/config
és nyissa meg szerkesztéshez:
nano ~/.ssh/config
Egyéni elnevezésű SSH kulcs kezelése
Az első dolog, amit megoldani fogunk a config
fájl használatával, az az, hogy elkerüljük az egyedi nevű SSH kulcsok használatát ssh-add
. Feltéve, hogy a privát SSH kulcsod meg van nevezve ~/.ssh/id_rsa
, add hozzá a következőt a config
fájlhoz:
Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes
Ezután győződjön meg arról, hogy ~/.ssh/id_rsa
nincs ssh-agent
bent, egy másik terminál megnyitásával és a következő parancs futtatásával:
ssh-add -D
Ez a parancs eltávolítja az összes kulcsot az aktív ssh-agent
munkamenetből.
Most, ha zárjon egy GitHub repository, a config
fájl fogja használni a kulcsot ~/.ssh/ida_rsa
.
Néhány további hasznos konfigurációs példa:
Host bitbucket-corporate HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_corp IdentitiesOnly yes
Most már használhatja git clone [email protected]:company/project.git
Host bitbucket-personal HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes
Most már használhatja git clone [email protected]:username/other-pi-project.git
Host myserver HostName ssh.username.com Port 1111 IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes User username IdentitiesOnly yes
Most SSH-t használhat a kiszolgálóra a ssh myserver
. Nem kell többé megadnia a portot és a felhasználónevet minden alkalommal, amikor SSH-t használ a magánszerverre.
Jelszókezelés
A puzzle utolsó darabja a jelszavak kezelése. Nagyon unalmas lehet a jelszó megadása minden alkalommal, amikor SSH-kapcsolatot inicializál. Ennek kikerüléséhez használhatjuk a macOS és a különféle Linux disztribúciókhoz tartozó jelszókezelő szoftvert.
Ehhez az oktatóanyaghoz a macOS Keychain Access programját fogjuk használni. Kezdje azzal, hogy hozzáadja kulcsát a Kulcstartó hozzáféréshez, átadva -K
a ssh-add
parancsot a parancsnak:
ssh-add -K ~/.ssh/id_rsa_whatever
Most láthatja SSH kulcsát a Kulcstartó hozzáférésben:

De ha eltávolítja a kulcsot ssh-agent
a ssh-add -D
indítsa újra a számítógépet, akkor a program kérni fogja a jelszót, amikor ismét megpróbálja használni SSH. Kiderült, hogy van még egy karika, amin át kell ugrani. config
Futtatásával nyissa meg az SSH fájlt, nano ~/.ssh/config
és adja hozzá a következőket:
Host * AddKeysToAgent yes UseKeychain yes
Ezzel bármikor futtatja ssh
a kulcsokat a Kulcstartó hozzáférésben. Ha talál ilyet, akkor már nem kéri a jelszó megadását. A gombok automatikusan hozzáadódnak ssh-agent
a gép minden egyes újraindításához.
Most, hogy ismeri az új SSH kulcsok létrehozásának és a több kulcs kezelésének alapjait, menjen ki és ssh
a szíve szerint!