Secure Shell

(secure shell szócikkből átirányítva)

Főnév

Secure Shell (tsz. Secure Shells)

  1. (informatika) A Secure Shell (SSH) egy kriptográfiai hálózati protokoll, amely biztonságos kommunikációt biztosít két gép között egy nem biztonságos hálózaton, például az interneten. Az SSH széles körben használatos távfelügyeleti kapcsolatokhoz, távoli szerverekhez való hozzáféréshez, fájlok átviteléhez, valamint parancsok futtatásához más gépeken, mindezt erős titkosítással és hitelesítési módszerekkel biztosítva.

SSH funkciói:

  1. Távoli hozzáférés: Az SSH segítségével a felhasználók biztonságosan csatlakozhatnak egy távoli szerverhez vagy géphez, és parancsokat futtathatnak a távoli gépen, mintha fizikailag hozzáférnének a rendszerhez.
  2. Titkosított kommunikáció: Az SSH minden kommunikációt titkosít, biztosítva, hogy a közbeiktatott támadók (például “man-in-the-middle” támadók) ne férhessenek hozzá az adatforgalomhoz vagy ne tudják megváltoztatni azt.
  3. Hitelesítés: Az SSH támogat különféle hitelesítési módszereket, beleértve a jelszavas hitelesítést és az erősebb, nyilvános kulcsú hitelesítést (SSH key-párok).
  4. Fájlátvitel: Az SSH használható fájlok biztonságos átvitelére távoli rendszerek között az SCP (Secure Copy) és az SFTP (SSH File Transfer Protocol) protokollok segítségével.
  5. Port forwarding (alagutazás): Az SSH képes biztonságos alagutakat létrehozni, amelyen keresztül különféle szolgáltatások vagy protokollok is biztonságosan használhatók, például egy adatbázishoz való kapcsolódás vagy más hálózati szolgáltatások használata SSH-n keresztül.

Hogyan működik az SSH?

Az SSH két részből áll: egy SSH kliensből és egy SSH szerverből.

  1. SSH szerver: A távoli gép vagy szerver, amely lehetővé teszi a felhasználók számára, hogy SSH-n keresztül csatlakozzanak hozzá. Ez a szerver futtathat Linux, macOS, Windows vagy más operációs rendszereket, és várja a bejövő SSH kapcsolatokat.
  2. SSH kliens: A felhasználó által használt gép vagy program, amely a kapcsolatot kezdeményezi a távoli SSH szerverhez. A kliens kapcsolatot hoz létre a szerverrel, és elküldi a hitelesítési adatokat, például a felhasználónevet és a jelszót, vagy SSH-kulcsokat.

SSH kapcsolódási folyamat:

  1. Kapcsolat kezdeményezése: Az SSH kliens megkezdi a kapcsolatfelvételt az SSH szerverrel.
  2. Kulcscsere: A kliens és a szerver titkosítva cseréli ki az ideiglenes kulcsokat, és egy közös titkot állítanak elő, amely a teljes kapcsolat titkosítására szolgál.
  3. Hitelesítés: A felhasználó a szerver által meghatározott hitelesítési módszerrel bejelentkezik, például jelszóval vagy SSH-kulccsal. Ha a szerver elfogadja a hitelesítést, a felhasználó hozzáférést kap a szerverhez.
  4. Titkosított kommunikáció: Az összes adatforgalom ezután titkosítva történik, biztosítva, hogy csak a kliens és a szerver tudja dekódolni az üzeneteket.

SSH hitelesítési módok:

  1. Jelszavas hitelesítés: A felhasználónak meg kell adnia a szerveren lévő fiókhoz tartozó felhasználónevet és jelszót. Ez a módszer könnyen használható, de kevésbé biztonságos, mint a kulcs-alapú hitelesítés.

  2. Nyilvános kulcs alapú hitelesítés: Az SSH-nál a nyilvános kulcsú titkosítás a legbiztonságosabb hitelesítési módszer. Ez két kulcspáron alapul: egy privát kulcson és egy nyilvános kulcson.

    • A felhasználó a privát kulcsot a saját gépén tartja.
    • A nyilvános kulcsot feltölti a szerverre.
    • Amikor a felhasználó csatlakozni próbál a szerverhez, a szerver a nyilvános kulcs alapján hitelesíti a felhasználót, és csak akkor engedi be, ha a kliens rendelkezik a megfelelő privát kulccsal.

    Ezt a módszert gyakran használják, mivel rendkívül biztonságos, és nem igényli jelszó beírását minden kapcsolatnál.

SSH-kulcspár létrehozása (Linux, macOS vagy Windows PowerShell alatt):

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Ez létrehoz egy 4096 bites RSA kulcspárt. A privát kulcsot a saját gépedre menti (általában a ~/.ssh/id_rsa fájlba), míg a nyilvános kulcsot a szerverre kell feltöltened (~/.ssh/authorized_keys).

SSH használata:

SSH kapcsolódás egy távoli szerverhez:

ssh username@hostname_or_ip

Például:

ssh user@192.168.1.100

Ezután a rendszer bekéri a jelszavad, vagy ha nyilvános kulcs alapú hitelesítést használsz, akkor automatikusan bejelentkezhetsz.

Fájlok átvitele SCP-vel:

Az SCP (Secure Copy) egy fájlátviteli protokoll, amely az SSH-t használja. Egy fájl másolása a helyi gépről a távoli szerverre:

scp /path/to/local/file username@hostname:/path/to/remote/directory

Például:

scp myfile.txt user@192.168.1.100:/home/user/

Fájlátvitel SFTP-vel:

Az SFTP (Secure File Transfer Protocol) egy biztonságos fájlátviteli protokoll, amely szintén SSH-t használ.

A következő paranccsal indíthatod el:

sftp username@hostname

Ezután az SFTP kliensben használhatod a put vagy get parancsokat fájlok másolásához a helyi és a távoli gép között.

SSH port forwarding (alagutazás):

Az SSH egyik hasznos funkciója a port forwarding, amely lehetővé teszi, hogy egy távoli szolgáltatáshoz biztonságos alagutat hozz létre.

Példa egy helyi port forwardingra:

ssh -L 8080:localhost:80 user@remote_server

Ez a parancs a helyi 8080-as portot összekapcsolja a távoli szerver 80-as portjával, így a localhost:8080 címen elérheted a távoli szerveren futó weboldalt.

SSH biztonsági gyakorlatok:

  1. Nyilvános kulcs alapú hitelesítés használata: Az SSH-kulcs alapú hitelesítés sokkal biztonságosabb, mint a jelszavas hitelesítés, ezért javasolt a kulcspár használata.
  2. Jelszavas hitelesítés letiltása: Miután beállítottad a kulcs-alapú hitelesítést, ajánlott a jelszavas hitelesítést letiltani az SSH szerveren.
  3. SSH port megváltoztatása: Az alapértelmezett 22-es port helyett másik portot is használhatsz az SSH kapcsolatokhoz, így csökkentheted a brute force támadások kockázatát.
  4. IP korlátozások: A szerver konfigurálható úgy, hogy csak bizonyos IP-címekről engedélyezze az SSH hozzáférést.
  5. Fail2Ban vagy tűzfal használata: Tűzfalakkal és olyan eszközökkel, mint a Fail2Ban, megakadályozhatod az SSH szervered elleni brute force támadásokat.

Összegzés:

Az SSH (Secure Shell) egy erős, biztonságos eszköz, amely titkosított hozzáférést biztosít távoli szerverekhez, és lehetővé teszi a fájlok biztonságos átvitelét, valamint a szolgáltatásokhoz való hozzáférést. Az SSH biztonsági funkciói, mint a nyilvános kulcs alapú hitelesítés, port forwarding és titkosított kommunikáció, nélkülözhetetlenné teszik az informatikai rendszerekben, különösen a távoli menedzsment és biztonságos adatátvitel területén.