Biztonságosabb SSH

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:
SHA256:o8rlCedgymHtOJpZnDJi51k7ji7r0/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.

Még van hozzászólás! Tovább