Miközben ezt az útmutatót Linux-szal szemléltetjük, ez a Cygwin-en keresztül is alkalmazható az OpenSSH-ra Mac OS X és Windows 7 rendszereken.
Miért biztonságos?
Sokszor említettük, hogy az SSH egy nagyszerű módja annak, hogy biztonságosan összekapcsolják és összekapcsolják az adatokat egy pontról a másikra. Vessünk egy nagyon rövid pillantást arra, hogy a dolgok hogyan működnek, így jobban el tudja képzelni, miért lehet néha furcsaság.
Ha a kapcsolódási folyamatunkat mailként értelmezzük, akkor az FTP és a Telnet használata nem olyan, mint a hagyományos levelező borítékok használata. Ez több, mint a képeslapok használata. Ha valaki középen lép be, láthatják az összes információt, beleértve a két levelező címét és a küldött felhasználónevet és jelszót. Ezután megváltoztathatják az üzenetet, megtartva ugyanazokat az információkat, és megszólalhatják az egyik tudósítót vagy a másik személyt. Ezt úgynevezett "ember-in-the-middle" támadás, és nem csak ez veszélyezteti fiókját, hanem megkérdőjelezi minden elküldött üzenetet és fájlt. Nem biztos abban, hogy beszél-e a feladóval, vagy sem, és még ha te is vagy, nem lehet biztos abban, hogy senki sem néz mindent a kettő között.
Most nézzük meg az SSL titkosítást, amely a HTTP-t biztonságosabbá teszi. Itt van egy postairodánk, amely kezeli a levelezést, aki ellenőrizni fogja, hogy az Ön címzettje melyik állítja, és törvényeket tartalmaz, amelyek védik az e-mailjeit attól, hogy megvizsgálják. Összességében biztonságosabb, és a központi hatóság - a Verisign egy, HTTPS példánk esetében - gondoskodik arról, hogy az a személy, akinek küldi az e-maileket, ellenőrzi. Ezt nem teszik lehetővé levelezőlapok (titkosított hitelesítő adatok); helyette valódi borítékokat küld.
Ha a magyarázatot addig tartja, akkor úgy gondoljuk, kivágjuk. Ha több betekintést kap, nyugodtan beszélhet a hozzászólásokban, természetesen. Most azonban nézzük meg az SSH legfontosabb jellemzőjét, a gazda-hitelesítést.
Host kulcsok
A gazdaigazolvány lényegében azon a részen áll, ahol valaki megbízik, átveszi a borítékot (mágikus matematikával lepecsételt), és megerősíti a címzett címét. Ez elég részletes leírás a címről, és ez egy bonyolult matematikán alapul, amelyet csak át kell ugrani. Van néhány fontos dolog, hogy elvinni ezt, mégis:
- Mivel nincs központi hatóság, az igazi biztonság a gazda kulcsában, a nyilvános kulcsokban és a privát kulcsokban rejlik. (Az utóbbi két kulcs konfigurálva van, amikor hozzáférést kap a rendszerhez.)
- Általában, ha SSH-n keresztül csatlakozik egy másik számítógéphez, a gazda kulcs tárolódik. Ezzel a jövőbeni műveletek gyorsabbak (vagy kevésbé szűkösek).
- Ha megváltozik a fogadó kulcs, akkor valószínűleg figyelmeztetni fog, és óvatosnak kell lennie!
Mivel a gazda kulcsot a hitelesítés előtt használják az SSH kiszolgáló személyazonosságának megállapításához, mindenképpen ellenőrizze a kulcsot a kapcsolat megkezdése előtt. Az alábbiakban egy megerősítési párbeszédablak jelenik meg.
A rendszer gazda kulcsának ellenőrzése
A kulcskészítéshez 4 típusú titkosítási algoritmus létezik, de az OpenSSH alapértelmezése az év elején az ECDSA (jó okokkal). Ma erre összpontosítunk.Íme a parancs, amelyet futtathat az SSH kiszolgálón, amelyhez hozzáférhet:
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l
A kimenetnek vissza kell térnie ehhez:
256 ca:62:ea:7c:e4:9e:2e:a6:94:20:11:db:9c:78:c3:4c /etc/ssh/ssh_host_ecdsa_key.pub
Az első szám a kulcs bithosszúsága, akkor maga a kulcs, és végül megvan a fájl, amelyben tárolt. Hasonlítsa össze azt a középső részt, amit lát, amikor a távoli bejelentkezést kéri. Meg kell egyeznie, és mind meg van állítva. Ha nem, akkor valami más is történhet.
Az ismert SSH-n keresztül megtekintheti a known_hosts fájlt. Általában:
~/.ssh/known_hosts
Bármelyik szövegszerkesztőben megnyithatod. Ha megnézed, próbáld meg figyelmet fordítani a kulcsok tárolására. A gazdaszámítógép neve (vagy webcíme) és IP címe tárolódik.
Host kulcsok és problémák megváltoztatása
Van néhány oka annak, hogy a gazda kulcsok megváltoztak, vagy nem egyeznek meg a known_hosts fájljában bejelentettekkel.
- A rendszer újratelepítésre került.
- A gazda kulcsokat kézzel módosították a biztonsági protokollok miatt.
- Az OpenSSH kiszolgáló frissített és különböző szabványokat használ a biztonsági problémák miatt.
- Az IP- vagy DNS-bérlet megváltozott. Ez gyakran azt jelenti, hogy egy másik számítógéphez próbál hozzáférni.
- A rendszert valamilyen módon veszélyeztette, hogy megváltozott a fogadó kulcs.
Valószínűleg a probléma az első három, és figyelmen kívül hagyhatja a változást. Ha megváltoztatta az IP / DNS bérletet, előfordulhat, hogy probléma merül fel a kiszolgálóval, és Ön másik gépre irányítható. Ha nem vagy biztos benne, hogy mi a változás oka, valószínűleg feltételezed, hogy ez az utolsó a listán.
Az OpenSSH hogyan kezeli az ismeretlen gazdákat
A konfigurációtól függően ismeretlen gazdagépekkel ellátott SSH-kapcsolatok (amelyek kulcsai még nem szerepelnek a known_hosts fájlban) háromféle módon történhetnek.
- A StrictHostKeyChecking beállítása nincs; Az OpenSSH automatikusan csatlakozik bármely SSH kiszolgálóhoz, tekintet nélkül a gazda kulcs állapotára. Ez bizonytalan és nem ajánlott, kivéve, ha egy csomó gazda hozzáadásával újratelepíti az operációs rendszert, majd visszaállítja.
- A StrictHostKeyChecking beállítása megkérdezi; Az OpenSSH megmutatja az új gazda kulcsokat, és megerősítést kér, mielőtt hozzáadná őket. Megakadályozza, hogy a kapcsolatok megváltoztak-e a megváltozott gazda kulcsokkal. Ez az alapértelmezett.
- A StrictHostKeyChecking beállítása igen; A "nem" ellentétben ez megakadályozza Önt, hogy csatlakozzon minden olyan állomáshoz, amely még nincs jelen a known_hosts fájlban.
Ezt a változót könnyen megváltoztathatja a parancssorban a következő paradigmával:
ssh -o 'StrictHostKeyChecking [option]' user@host
Cserélje ki az [opciót] a "nem", a "kérd" vagy az "igen" lehetőséggel. Ne feledje, hogy egyetlen egyenesen idézőjelet tartalmaz ez a változó és annak beállítása. Cserélje ki a felhasználó @ hostot a kiszolgáló nevével és a gazdagépnevével, amelyhez csatlakozik. Például:
ssh -o 'StrictHostKeyChecking ask' [email protected]
A megváltozott billentyűk miatt blokkolt hostok
Ha van olyan kiszolgálója, amelynek megpróbálta elérni a kulcsát, akkor az alapértelmezett OpenSSH konfiguráció megakadályozza, hogy hozzáférjen hozzá. Megváltoztathatta a StrictHostKeyChecking értéket a gazda számára, de ez nem lenne teljesen, alaposan, paranoid módon biztonságos lenne? Ehelyett egyszerűen eltávolíthatjuk a offending értéket a known_hosts fájlból.
Most pedig egy szép kérést kapunk, amelyre egyszerűen "igen" válaszolunk.
Új gazda kulcsok létrehozása
A rekordot illetően tényleg nem sok ok arra, hogy egyáltalán megváltoztassa a gazda kulcsát, de ha valaha megtalálja az igényt, egyszerűen megteheti.
Először lépjen át a megfelelő rendszerkönyvtárba:
cd /etc/ssh/
Ez általában ott van, ahol a globális gazda kulcsok vannak, noha vannak olyanok, amelyek máshol vannak elhelyezve. Ha kétségei vannak, ellenőrizze a dokumentációját!
Ezután töröljük az összes régi kulcsot.
sudo rm /etc/ssh/ssh_host_*
Alternatívaként érdemes áthelyezni őket egy biztonságos biztonsági könyvtárba. Csak egy gondolat!
Ezután elmondhatjuk az OpenSSH kiszolgálónak, hogy újra konfigurálja magát:
sudo dpkg-reconfigure openssh-server
Megjelenik egy prompt, amikor a számítógép új kulcsokat hoz létre. Ta-da!
Most, hogy tudod, hogy az SSH egy kicsit jobban működik, képesnek kell lennie arra, hogy kipróbálja magát a kemény foltokból. A "távoli házigazda azonosítása megváltozott" figyelmeztetés / hiba olyan tényező, amely sok felhasználó kikapcsol, még azok is, akik ismerik a parancssort.
A bónuszpontoknál ellenőrizheti, hogyan távolról másolhat fájlokat az SSH-n keresztül a jelszó beírása nélkül. Ott megtudhatsz egy kicsit többet a titkosítási algoritmusok egyéb fajtáiról, és hogyan használhatsz kulcsfájlokat a nagyobb biztonság érdekében.