A távoli elérés biztonságát nem csak a hosszú és bonyolult jelszóval érhetjük el. Létrehozhatunk egy digitális kulcsot is. Vagyis ha még ki is találják a jelszavunkat, enélkül a digitális kulcs nélkül nem jutnak be.
Első lépésként a helyi gépen hozzunk létre egy SSH kulcsot.
ssh-keygen
A kulcs generálása közben megkérdi, hogy hová mentse, ezt hagyjuk alapértelmezésen.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/cigam/.ssh/id_rsa):
Majd megadhatunk egy "jelszót" ami a kulcshoz fog tartozni. (Ha nem adunk meg jelszót, csak egy entert ütünk, akkor jelszó megadása nélkül, pusztán a kulcs használatával is beléphetünk majd.
Created directory '/home/cigam/.ssh'.
Enter passphrase (empty for no passphrase):
A jelszó megadását meg kell ismételni, hogy biztosan nem gépeltük-e el. Majd elkészül a privát kulcs (id_rsa), és a publikus kulcs (id_rsa.pub)
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/cigam/.ssh/id_rsa
Your public key has been saved in /home/cigam/.ssh/id_rsa.pub
The key fingerprint is:
SHA2568rlCedgymHtOJpZnDJi51k7ji7r0/gdr5XZD4GcgGh user@hostname
The key's randomart image is:
+---[RSA 3072]----+
| |
|. . |
|.E . |
|. p p |
| + .S |
| ... n.n. |
|+-Oo.++= |
|*@B+=B+.o |
|%B=Bao-. . |
+----[SHA256]-----+
A publikus kulcsot fel kell tölteni a szerver fiókunkba.
ssh-copy-id cigam@remote_host
Ahhoz hogy fel tudja tölteni a publikus kulcsunkat, be kell jelentkeznünk a távoli eszközre (szerver), az aktuális jelszavunkkal.
ssh-copy-id cigam@hostname
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/cigam/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
cigam@hostname's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'cigam@hostname'"
and check to make sure that only the key(s) you wanted were added.
Ha minden rendben történt, akkor hozzáadott egy kulcsot, és már csak a kulcs, és a hozzátartozó jelszó birtokában tudunk belépni. Azon a gépen, ahol elkészítettük a privát és publikus kulcsunkat. Más gépről még simán beléphetünk a mezei felhasználónév/jelszó párossal.
ssh cigam@hostname
Enter passphrase for key '/home/cigam/.ssh/id_rsa':
Linux hostname 6.1.21-v7+ #1642 SMP Mon Apr 3 17:20:52 BST 2023 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jun 10 22:42:38 2023 from 192.168.99.24
cigam@hostname:~ $
Ha sikeresen leteszteltük a kulcsa való belépést, és minden felhasználónak beállítottuk azt, kikapcsolhatjuk az ssh azon opcióját, hogy mezei jelszóval is beléphetünk. Ehhez módosítani kell az ssh szerver konfigurációját úgy, hogy a PasswordAuthentication opció elöl kivesszük a # jelet és a yes-t átírjuk no-ra.
sudo nano /etc/ssh/sshd_config
Windows alatt is tudsz kulcsot generálni magadnak. Talán az egyik legegyszerűbb megoldás a PuTTY terminál programmal települő segédprogram, a puttygen használata. (A portable verzió is tartalmazza ezt a programot, csak nem teszi ki az ikonját. A ...PortableApps\PuTTYPortable\App\putty útvonalon találod meg)
Ne felejtsük el lementeni a privát és a publikus kulcsot is egy egy fájlba, később még szükség lesz ezekre.
Ezután be kell lépned a szervered-re, és módosítani kell a "home" mappád .ssh könyvtárában található authorized_keys nevü fájlt. Ebbe a fájlba kell bemásolni a puttygen által generált (publikus)kulcsot, ami a felső szövegmezőben található, és "ssh-rsa"-val kezdődik.
Módosítás után ellenőrizni kell, hogy a fájlnak még mindég az adott felhasználó-e a tulajdonosa, és célszerű minden (egyéb) írásjogot levenni róla.
chmod go-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys
A PuTTY-on belul pedig a Connecton ->SSH ->Auth->Credentials menüben betöltjük a puttygen-el elmentett privát kulcsot, példánkban kulcs.ppk a fájl neve.
Óvatosan zsonglőrködj, mert hamar kizárhatod magad, pl. ha elveszik a privát kulcs fájlod, a szerver soha többé nem fog beengedni! Mielőtt bármi végzetes történne, érdemes egy tartalék terminálon bejelentkezni, és ezt a kapcsolatot addig nyitva tartani, amíg minden nem stimmel. Ha bármi rossz történne ezzel a tartalék kapcsolattal, még visszakapcsolhatod, a kulcs nélküli bejelentkezést, vagy javíthatod a felmerülő hibákat.