Az SSH végső útmutatója - Az SSH-kulcsok beállítása

Ü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/.sshkö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-adda 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 configfá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 configfá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_rsanincs ssh-agentbent, 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-agentmunkamenetből.

Most, ha zárjon egy GitHub repository, a configfá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 -Ka ssh-addparancsot a parancsnak:

ssh-add -K ~/.ssh/id_rsa_whatever

Most láthatja SSH kulcsát a Kulcstartó hozzáférésben:

Kulcstartó hozzáférés

De ha eltávolítja a kulcsot ssh-agenta ssh-add -Dindí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. configFuttatá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 ssha 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-agenta 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 ssha szíve szerint!