15. Az ssh¶
Az ssh egy protokoll és egy program neve, amely többek közt lehetővé teszi, hogy egy távoli gépre bejelentkezz, és azon dolgozz. Egyes operációs rendszerek tartalmaznak olyan programot, amelyek alkalmasak erre (MacOS, Unixok) míg mások pl. a Windows esetében külső szoftvert kell használni erre.
A korai években, amikor a hálózati hozzáférések gyakorlatilag csak a kutatóintézetekben történtek, az üzemeltetők nem feltételeztek semmiféle rosszindulatot a felhasználók részéről. Ismeretlenek voltak a számítógépes betörések, vírusok. A hálózati kommunikáció megtervezése során, amelyben definiálták, hogy egy kliens és egy szerver hogyan kommunikál egymással (ezt hívják protokollnak) nem fektettek hangsúlyt a hálózati biztonságra. A távoli hozzáérést egy ún. telnet protokollra (és programra) alapozva végezték, ezzel lehetett bejelentkezni egy távoli gépre és azon dolgozni. A telnet kapcsolat nagyon könnyen lehallgatható.
Ahogyan a hálózati hozzáférések egyre szélesebb körben terjedtek el, a mindennapi életben használni kezdték az ezen alapuló szolgáltatásokat, elkerülhetetlen volt a kommunikáció titkosítása, amire a telnet képtelen volt. A bankkártya adatokhoz való hozzáférés, a banki- és levelező rendszerek feltörése és kéretlen levelek tömeges szétküldése csak néhány mai példa az illegális hozzáférés megszerzésének okaira.
Tudnod kell, hogy nem létezik lehallgathatatlan számítógépes hálózat. A WiFi eszközök adatai nagyobb távolságban, a BlueTooth és vezetékes kapcsolatok néhány méteres körzetben „foghatók” ennek megakadályozására nincs mód, ezzel együtt kell élni. Nem tudhatod, hogy az adatátvitelre szolgáló kábelbe hol iktattak be egy olyan berendezést, amely minden átfolyó adatot rögzít. Ezért a régi hozzáférési módok, pl. a telnet (de sok más esetében is igaz ez), már nem voltak biztonságosak. Az egyetlen megoldás az átvitt adatok titkosítása, s ha ez jól működik, a lehallgatás megtörténhet ugyan, de a lehallgatott adatok értelmezhetetlenek. Ezért mára a legtöbb helyen a telnetet leváltotta az ssh.
A legtöbb rendszergazda a fentiek miatt tiltja is a telnet használatát a bejelentkezésre.
15.1. Unix¶
Az ssh használata a parancssorban egyszerű, paraméterként legalább egy dolgot kell megadni, a cél számítógép nevét vagy IP címét. Lássunk egy példát!
feri@columbo:~$ ssh gemini.ektf.hu
The authenticity of host 'gemini.ektf.hu (193.225.32.11)' can't be established.
RSA key fingerprint is d6:37:8c:ab:ba:a5:11:c8:8b:7b:07:ef:19:de:5e:16.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gemini.ektf.hu,193.225.32.11' (RSA) to the list of known hosts.
Debian GNU/Linux 6.0
Password:
feri@gemini:~$
A parancs kiadása után a célgép bekéri a jelszavadat, amennyiben az helyes, beléptet, és elindítja a /etc/passwd
fájl rád vonatkozó sorában levő shellt, ez a Linux rendszereken szinte mindig a /bin/bash. A bash kiír egy promptot és várja a parancsaidat.
Kilépned a logout vagy exit parancsokkal vagy Ctrl-d billentyűkombinációval kell. Ekkor tulajdonképpen a parancsértelmezőből (példáinkban a bash-ből) lépsz ki, ami a kapcsolat megszakítását eredményezi.
Megjegyzés
Ha az első alkalommal jelentkeztél be egy gépbe az ssh használatával, az ssh fingerprint ellenőrzésére felszólító kérés jelenik meg. Elfogadni azt a yes begépelésével lehet. Ha rendelkezel ezzel, ellenőrizd és csak akkor lépj tovább, ha ez valóban az, amit megkaptál.
Ha a célgépen más a felhasználó név, mint a forrás gépen akkor a célgép neve kiegészíthető a felhasználó nevével így:
feri@columbo:~$ ssh koczka.ferenc@gemini.ektf.hu
Az ssh-nak számos paramétere van, és a távoli munkavégzésen kívül sok egyéb feladatra is használható. Ha el akarsz mélyedni ebben, ezt a könyvet ajánlom: SSH a gyakorlatban, Kiskapu Kiadó, ISBN:9789639301818.
Minden felhasználónak lehetősége van az ssh parancs működésének beállítására egy konfigurációs fájlmegírásával, ennek szokványos helye a home könyvtárában levő .ssh/config
fájl. Lássunk egy példát, melyben megmutatok néhány lehetőséget, amellyel a mindennapokban kényelmesebbé teheted a munkádat!
ServerAliveInterval 60
Host www.linux-szerver.hu
User koczka.ferenc
Port 4222
Host columbo
HostName columbo.uni-eszterhazy.hu
User koczka.ferenc
Host *
User root
A fájl több részre osztható, az elsőben az általános beállítások találhatók, azok, amelyek minden esetben érvényre jutnak. Ez után megadhatók olyanok is, amelyek csak megadott géphez történő kapcsolódás esetén érvényesülnek. Példánk első részében két beállítás olvasható:
- ServerAliveInterval 60:
Egyes számítógépek lebontják a hálózati kapcsolatot akkor, ha inaktív vagy. Ez egy biztonsági beállítás, és egyes cégeknél tilos is kikapcsolni, mert ezzel megnehezítik az őrizetlenül hagyott gépet kihasználó idegenek dolgát. Ha a napi munkád során gyakori, hogy pl. folyamatosan dokumentációt olvasol, vagy a konyhában teszel-veszel, vagy fekvőtámaszokat nyomsz, miközben valamilyen hosszabb lefutású programod működik akkor probléma, ha a magára hagyott gép kapcsolata megszakad. Ha ez így van, a
ServerAliveInterval
beállításával meghatározhatod, hogy az ssh milyen időközönként generáljon hálózati forgalmat azért, hogy ezt megakadályozza. Itt az értéke most 60 másodperc.- host www.linux-szerver.hu:
Az alábbi beállítások akkor lesznek érvényesek, ha a felhasználó az ssh www.linux-szerver.hu parancsot adja ki.
- User koczka.ferenc:
Ha nem adtál meg bejelentkezési nevet, akkor az a koczka.ferenc lesz.
- Port 4222:
Ha jártas vagy a hálózatok témakörében, akkor ismered a port fogalmát, ha nem az ssh standard 22-es portját akarod használni, itt megadhatsz egy másik alapértéket.
- Host demoServer:
Ez már egy másik kapcsolat leírásának kezdetét jelenti. A demoServer csak egy rövid név, ez nem jelent értelmes gépnevet, de ennek ellenére lesz értelne az ssh demoServer parancsnak, mert a következő sorban megadjuk a gép „internetes nevét”.
- HostName columbo.uni-eszterhazy.hu:
Ez azt jelenti, hogy a kapcsolat létrehozása a columbo.uni-eszterhazy.hu szerverrel történik meg.
- User koczka.ferenc:
Mint az előző gép esetében, a bejelentkezési név koczka.ferenc lesz.
- Host *:
A * jelentése, minden más esetben. Az alábbiak tehát minden gépre érvényes beállítások lesznek.
- User root:
A bejelentkezési név root lesz.
15.2. A Putty¶
A Putty egy elterjedt és jól használható program arra, hogy biztonságos távoli hozzáférést valósítson meg. Ingyenes, telepíteni sem kell, és számos kényelmi funkcióval rendelkezik. Az alábbiakban ezt a programot ismerheted meg. A program jelenleg a http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html oldalról tölthető le. (Mivel ez a cím elég nehezen jegyezhető meg, ezért a gyakorlatban egy Google kereséssel szoktam célt érni.) A program a letöltés után azonnal használható, nem kell telepíteni sem. Csak másold az asztalra, nem nagy, jóhelyen lehet itt is.
15.2.1. A Putty testreszabása¶
A Putty képes arra, hogy a gyakran használt távoli gépek kapcsolódási beállításait elmentse, így célszerű ezeket egyszer megtenni és menteni. De érdemes először az általános beállításokat elvégezni és menteni, mert innentől minden további gépre ezek lesznek érvényesek, így nem kell azokat újra és újra megtenni. Lássunk néhány, a gyakorlatban is hasznosat ezek közül!
15.2.1.1. Alapbeállítások¶
A Putty indítása után megjelenő ablakban lehet elvégezni a távoli gépek felvételét, illetve a program beállításait. Ezek a gépek a Saved Sessions részben láthatók (ábránkon ez még üres, csak a Default Settings látható). Az ablak bal oldalán levő menüből indulva lehet az egyes beállításokat elvégezni. Nézzük végig a beállításokat, és a legfontosabbakat mentsük el alapértelmezettként!
15.2.1.2. Protokoll¶
A Connection type blokkban választható ki a kívánt átviteli protokoll. Bár a telnet is rendelkezésre áll, és később néhány esetben ez hasznos is lesz, a fentiek miatt az alapértelmezett ssh-t kell kiválasztani. Ekkor tehát a kapcsolat titkosított formában épül fel, és egy harmadik személy számára lehetetlen az átvitt adatok dekódolása.
15.2.1.3. Visual bell¶
Egy hasznos beállítás, ha a program hangjelzéseit az ún. Visual Bellre cseréled. (Szorult helyzetben levő rendszergazdák feleségei különösen értékelik ezt, amikor nem ébreszti fel őket egy elütésre figyelmeztető hangjelzés.) Ehhez a bal oldali menüben válaszd a Bellt, és a jobb oldalon megjelenő panelben kattints a Visual Bell (flash window) beállításra. Ennek hatására a figyelmeztető hangjelzések helyett a putty a képernyőt egy pillanatra invertálja (felvillantja).
15.2.1.4. Teljes képernyős mód¶
A Behavior menüben érdemes bekapcsolni a Full screen on Alt-Enter lehetőséget. Így egy Alt-Enter után a Putty a teljes képernyőt kitölti, így kényelmes, nagy munkafelületet kapsz. A teljes képernyős módból az Alt-Enter újbóli megnyomásával tudsz kilépni.
15.2.1.5. Karakterkészlet¶
A karakterkészlet hibás beállítása esetén a Putty nem jól jelenít meg egyes karaktereket. A régebbi Linuxok még nem UTF-8 karakterkészlettel dolgoztak, hanem pl. Latin1-gyel, a Putty beállításának egyeznie kell a távoli gépével. A korszerű Linuxok esetében és a mostani Putty verziókban már az UTF-8 a jellemző alapbeállítás, így ezen csak ritkán kell módosítanod.
15.2.1.6. A Kapcsolat védelme¶
Az ssh config fájljának beállításakor már láttad, hogy meghatározható, hogy milyen időközönként generáljon a kliens hálózati forgalmat ezért, hogy megakadályozza az inaktív kapcsolat lebontását. Ezt a Putty esetében a
menüben kell megadnod. Én 30-60 másodperces értékkel szoktam dolgozni, ez a gyakorlatban mindig működik, ennél rövidebb idő beállítása már értelmetlennek tűnik.15.2.1.7. Bejelentkezési név¶
A rendszergazdák a legtöbb esetben minden gépre ugyanazzal a névvel, a root-tal jelentkeznek be. A Putty számára kapcsolatonként megadható a bejelentkezési név, így azt a napi munka során már nem kell begépelni, a program automatikusan elküldi azt. A példánkban is látható root a rendszergazda neve.
15.2.1.8. Beállítások mentése¶
A beállítások elmentése a Session menü kiválasztása után történik. A Saved Sessions listában kattints a Default Settings-re, majd nyomd meg a Save gombot. nnek eredményeként az új gépek felvételekor a fenti beállítások automatikusan érvényesek lesznek, mivel azok a Default Settings szerinti beállításokkal jönnek létre.
15.2.1.9. Új kapcsolat felvétele¶
Vegyünk fel egy új kapcsolatot! Mivel példáinkban a columbo.uni-eszterhazy.hu géppel dolgozunk majd, ezért célszerű azt felvenni a Putty-ba. A Sessions lapon meg kell adni a számítógép nevét, vagy IP címét, valamint egy nevet, amellyel később hivatkozhatsz erre a kapcsolatra. Az sem baj, ha a két név megegyező. A továbbiakban a columbo.uni-eszterhazy.hu gépen dolgozunk majd, ezt az ábrán látható módon veheted fel a programba. A Host name és a Saved Sessions mezőkbe is begépeljük a gép nevét, majd megnyomjuk a Save gombot. A Session listában megjelenik a mentett gép neve.
15.2.1.10. Kapcsolat törlése¶
Ha egy géppel már nem dolgozol többé, érdemes a listából törölni, ehhez a gép kiválasztása után a Delete gombot kell megnyomni.
Megjegyzés
A Putty-ban kijelölt szöveg azonnal a Windows vágólapjára kerül, a jobb egérgomb (vagy a Shift-Insert) lenyomásakor pedig a vágólapon levő szöveget a kurzor helyére másolja a program. A menükben nem találsz majd Cut/Copy/Paste pontokat.
A Putty beállításai könnyen átvihetők egy másik számítógépre is. Ehhez indítsd el a Registry Editort, majd keress rá a következő szóra: SimonTatham (ez a fejlesztő neve). Az ebből nyíló Putty nevű kulcson kattints jobb gombbal, válaszd ki az exportálás menüpontot, majd add meg a mentendő fájl nevét. A fájlt másold át a másik gépre, kattints rajta duplán, és kérd a helyreállítását.
A Putty ablakának rendszermenüje is tartalmaz néhány hasznos funkciót. Ilyen pl. a Duplicate Session, amelyet kiválasztva az aktuális kapcsolat beállításaival egy újabb ablak nyílik, amibe már csak be kell jelentkezni. A Restart Session az esetleg megszakadt kapcsolatot újraépíti. A Change Settings pedig a működő kapcsolat néhány beállításának megváltoztatását kínálja, de ilyenkor csak néhány tulajdonság módosítható.
15.3. Nyilvános kulcsú azonosítás¶
A bejelentkezésnek van egy másik módja is, ez az ún. kulccsal történő azonosítás. Ha ezt választod, akkor nem kell jelszót megadni a bejelentkezéskor, a kulcs megadásával igazolhatod magad.
A kulcson alapuló azonosítás a nyilvános kódú titkosításon alapul, amiről a kriptográfia óráidon részletesen tanulsz majd. A lényege egy kulcspár, melyet a megfelelő programokkal lehet generálni. Ez egy nyílt algoritmus alapján, különféle programokkal (Windowson ilyen a puttygen, a Unix rendszereken az openssl) történik. A generált kulcspár lényeges tulajdonsága, hogy az egyik kulccsal titkosított adat csak a párjával fejthető vissza. A gyakorlati felhasználás úgy történik, hogy a kulcspár egyik felét a tulajdonos nyilvánosságra hozza (ez a nyilvános kulcs), a másik felét titokban tarja és gondosan őrzi. A nyilvános kulcs bárki számára elérhető lehet, azzel bárki készíthet kódolt üzenetet, de ezt csak a tulajdonosnál levő titkos kulcs birtokában lehet dekódolni, tehát erre csak a tulajdonos képes.
15.3.1. Az algoritmusról¶
Ha érdeklődsz az algoritmusok iránt, nézd meg, hogyan működik az RSA, az egyik elterjedt algoritmus. (A példa Réti Kornél, a Microsec Kft. munkatársa előadásának felhasználásával készült.)
- Az RSA algoritmus
Generáljunk két prímszámot, ez legyen p és q.
Szorozzuk össze őket: m=p*q.
Számítsuk ki az f=(p-1)*(q-1) értékét.
Válasszunk egy e számot, mely relatív prím f-fel (azaz nincs 1-nél nagyobb közös osztójuk).
Számítsd ki d-t úgy, hogy e*d adjon 1 maradékot f-fel osztva.
Ekkor igaz lesz az, hogy bármilyen x-re (x^e)^d maradéka m-mel osztva x lesz. A nyilvános kulcs m és e számpár, a titkos kulcs pedig d.
- Egy gyakorlati példa:
A két prím legyen p=5 és q=11.
Szorozzuk össze őket: m= p*q = 5*11 = 55.
Számítsuk ki f-et: f = (p-1)*(q-1) = 4*10=40.
Legyen e=3.
d=27 mert 27*3=81, a 81%40=1.
Így tehát a nyilvános kulcs 55 és 3, a titkos kulcs 27.
- Példa üzenet küldésésre
A 8 üzenetet szeretnénk elküldeni.
A titkosított üzenet: 8^3=512.
Ez 55-tel osztva 17 maradékot ad, ez lesz az üzenet.
- Az üzenet fogadása
A vevő megkapja a titkosított üzenetet, a 17-et.
Dekódolás: 17^27=1667711322168668287513535727415473.
1667711322168668287513535727415473 % 55 = 8.
Tehát az eredeti üzenet 8 volt.
A fenti példából látható, hogy az algoritmus használata során rendkívül nagy számok keletkeznek p és q kis értéke mellett is. Mivel a gyakorlatban p és q értéke is nagyon nagy, a megvalósítás nagyon számításigényes. Emiatt a nyilvános kulcsú titkosítási algoritmus használatát minimalizálják, csak addig használják, amíg a jóval gyorsabb szimmetrikus kódoláshoz szükséges kulcscserét elvégzik, utána pedig már azzal dolgoznak tovább.
Megjegyzés
Lehet fordítva is csinálni: ha a tulajdonos a titkos kulcsával kódol el egy üzenetet, és azt elküldi, a címzett az a küldő nyilvános kulcsával tudja dekódolni. Ez a digitális aláírás alapelve, ebben az esetben bizonyított, hogy az üzenet valóban a feladótól származik, hiszen a titkosítást csak ő végezhette el.
Ha érdekel publikus kulcsú infrastruktúra (PKI) témája, tudni szeretnéd, mi a tanúsítvány, időbélyeg és a téma más, a gyakorlatban is használható eleme, jó szívvel ajánlom neked ezt az ingyenesen letölthető, magyar nyelvű könyvet: https://e-szigno.hu/tudasbazis/nagy-e-szigno-konyv.html.
15.3.2. Kulcspár generálása¶
15.3.2.1. Unix¶
A kulcspár generálásához az ssh-keygen programot kell futtatnod. Az alábbi példában készítek egy ilyet, az egyszerűség kedvéért most nem védem jelszóval (az Enter passphrase (empty for no passphrase): megjelenésekor csak Entert ütöttem). A kulcs RSA algoritmust használ, és 2048 bites, ennek megadására szolgál a két paraméter.
feri@columbo:~$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/feri/.ssh/id_rsa):
Created directory '/home/feri/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/feri/.ssh/id_rsa.
Your public key has been saved in /home/feri/.ssh/id_rsa.pub.
The key fingerprint is:
03:67:04:d1:55:de:94:93:07:4d:ad:d5:20:4f:8b:ca feri@columbo
The key's randomart image is:
+--[ RSA 2048]----+
| o+....o =B+|
| .. . B+.*|
| . o o += |
| + . . . |
| S E |
| . |
| |
| |
| |
+-----------------+
Megjegyzés
A kulcs jelszóval történő védelme megvéd az illetéktelen felhasználástól. Hasznos, ha pl. elveszíted a kulcspárt tartalmazó adathordozót, hiszen a jelszó nélkül nem lehet használni azt. Ha viszont a kulcsot automatizmusok során akarod használni, ahol nincs lehetőséged jelszó megadására, akkor ez problémát okoz, ezért a jelszó használatát sok esetben mellőzik.
A program lefutása után létrejött a home könyvtáramban egy .ssh könyvtár, és abban két fájl van:
feri@columbo:~$ ls -la .ssh
összesen 16
drwx------ 2 feri feri 4096 júl 1 12:00 .
drwxr-xr-x 16 feri feri 4096 júl 1 11:59 ..
-rw------- 1 feri feri 1675 júl 1 12:00 id_rsa
-rw-r--r-- 1 feri feri 394 júl 1 12:00 id_rsa.pub
Értelemszerűen a .pub kiterjesztésű fájlban van a publikus, a másikban a privát kulcs. Nézd meg a privát kulcs jogosultsági beállításait, csak a tulajdonos fér hozzá, mások számára elérhetetlen. Tegyünk egy próbát, megpróbálok bejelentkezni egy másik gépre úgy, hogy használom az imént létrehozott kulcsot:
feri@columbo:~$ ssh testuser@backup.linux-szerver.hu
The authenticity of host 'backup.linux-szerver.hu (193.225.35.213)' can't be established.
ECDSA key fingerprint is 70:8a:b7:4a:9b:2a:29:b7:e7:cd:67:03:91:50:9b:d8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'backup.linux-szerver.hu,193.225.35.213' (ECDSA) to the list of known hosts.
testuser@backup.linux-szerver.hu's password:
A példából látszik, hogy ez még így nem jó, továbbra is jelszót kért a távoli gép. Ennek az az oka, hogy a backup.linux-szerver.hu gépen levő testuser felhasználó nem engedélyezte, hogy a nyilvános kulcsomat belépésre használjam. Az ilyen kulcsok engedélyezése úgy történik, hogy a felhasználó publikus kulcsát a home könyvtár .ssh/authorized_keys fájljába kell írni. Ebben több nyilvános kulcs is lehet, így mások számára is biztosítható a hozzáférés. Ezt el lehet érni úgy, hogy a nyilvános kulcsunkat elküldjük a testuser felhasználónak, és megkérjük, hogy másolja be az authorized_keys fájlba pl. így:
cat .ssh/id_rsa.pub | mail -s "Koczka Ferenc nyilvános kulcsa" testuser@backup.linux-szerver.hu
De ha ismerjük testuser jelszavát, akkor magunk is felvehetjük a nyilvános kulcsunkat az ssh-copy-id paranccsal:
feri@columbo:~$ ssh-copy-id testuser@backup.linux-szerver.hu
/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
testuser@backup.linux-szerver.hu's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'testuser@backup.linux-szerver.hu'"
and check to make sure that only the key(s) you wanted were added.
Még egyszer: a parancs hatására a testuser home könyvtárában levő .ssh/authorized_keys fájlához hozzáadtuk az első lépésben generált kulcspár nyilvános felét:
testuser@backup2:~$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9ezYVxf7ZAFj6oRuEx8DjtwCTFDJLLOj6xiAuh7obJfe9nkfjW7+ZI7MWlBM+hICFg9mJSkmmjzMpkf0c0EYu0InQpuo6WnN//heHWaniJ2f+05L3fMl7Vcy4H6/0POul4NBSsYQKiXs2nvjtgWBZCv2JVWAMaozT1TiKyWMnW94ENQVzPTU4kFzul2awqwobaoaRqqqAbx7nL7Y2NsFTYu3n7B+DKDlXJTAS7eO6CeStvCKAVK5KIvgVl6RmkCYluwolqz81golLAFjmoHVghPkigIiNiHYVpYVui/awtzL76CYq6cbS0DjI6QWMNBsG9ec7CnUuQ0rwC55gSvXl feri@columbo
Megjegyzés
Ha több kulcspárt is generáltál, -i kapcsolóval megadhatod, hogy melyiket akarod használni a például így: ssh -i .ssh/masikkulcs.pub user2@fs.linux-szerver.hu
15.3.2.2. Kulcs generálása Windowson¶
A kulcspár előállítására a Putty fejlesztője egy másik programot készített, ennek PuttyGen a neve. Ez is ingyenes, és ugyanonnan töltheted le, ahonnan a Putty-t. Indítása után nyomd meg a Generate gombot, ezzel kezdetét veszi a kulcspár készítésének folyamata.
A kulcspár generálásához véletlenszámokra van szükség, ezek előállításában te fogsz közreműködni. A kijelölt területen össze-vissza kell mozgatnod az egeret. A mozgásadatokból készült véletlen számokat felhasználva készül el a kulcspár. A folyamat előrehaladását az ablak felső részén látható folyamatjelző jelzi, a végén a nyilvános kulcs ezen a területen láthatóvá válik.
Az elkészült kulcspár tartalmazhat egy nevet, ezt érdemes megadnod. A passphrase a kulcs használatához szükséges jelszó, ezt kétszer is meg kell adnod. A kulcspár mentésére két gomb szolgál, az egyik a nyilvános, a másik a titkos kulcsot menti el.
Ha elkészült a kulcsfájlod, a Putty számára megadhatod ennek helyét, így tehát a kapcsolat felvételekor nem kell jelszót használnod, a kulcs azonosít téged. A Putty beállításaiban a kulcsot tartalmazó file megadása az Auth panelen történik.
15.3.2.3. Egyéb azonosítási módok¶
A kulcspár tárolására hardveres megoldások is léteznek, egy gyakori megoldás az aláíró token. Ez egy néhány ezer forintos USB-s eszköz, amely képes a kulcspár generálására, egyes típusok esetében garantált, hogy a titkos kulcs nem olvasható ki belőle. Ezek elvesztése nem jelent problémát, nem lehet használni őket. Ha aláíró tokennel akarsz dolgozni, akkor Windowson a Putty helyett a putty-cac programot kell használnod, ez letölthető innen: https://risacher.org/putty-cac/. Ez nagyon hasonló a Putty-hoz, ha az eddigieket megértetted, biztosan tudsz majd dolgozni vele.
A unixos ssh parancs megfelelő driver megléte esetén már jó ideje képes a tokenek használatára. Minden ilyen tokenhez driver kell, amit manapság az operációs rendszerek nem nagy számban tartalmaznak. Van nyílt forrású megoldás is (openSC a neve), ez is csak bizonyos tokeneket képes kezelni, ezért ha tokent akarsz vásárolni, előtte alaposan tájékozódj, hogy az adott operációs rendszerekhez tudod-e majd illeszteni. Az openSC kezelése egyébként nem bonyolult, a fentiek ismeretében fél óra alatt megtanulhatod a használatát.
Az alábbi példában egy bejelentkezést mutatok meg neked úgy, hogy az ehhez szükséges kulcspár egy aláíró tokenben van. A kulcs használatához – éppúgy, mint a bankkártyád esetén – először egy PIN kódot kell megadnod.
koczka-air:~ koczkaferenc$ ssh root@columbo.uni-eszterhazy.hu
Enter PIN for 'Koczka Ferenc (User PIN)':
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-77-generic x86_64)
root@columbo:~#
Megjegyzés
Nagy tömegú kulcsgeneráláshoz, kezelésükhöz, nagymennyiségű adat gyors titkosításhoz HSM modulokat (Hardware Security Module) szokás használni. Ezek általában külső eszközök, vagy a számítógépbe építhető kártyák, amelyek a legtöbb esetben minősítéssel is rendelkeznek, áruk ennek megfelelően elég magas.
Az azonosításban egy másik érdekes lehetőség a kétlépcsős és a kétfaktoros azonosítás, az utóbbit az ssh esetében is használhatod. A megoldás lényege, hogy a jelszó és a kulcs használata mellett még egy azonosítási lépésre van szükség, pl. belépési kísérlet esetén SMS-t kapsz, és az abban közölt kódot kell még megadni. A kétfaktoros azonosítással már sok helyen találkozhattál, előszeretettel alkalmazzák bankok, de a Facebook és a Google account is védhető ilyen módon. Több ingyenes mobiltelefonos alkalmazás is letölthető, amely a kétfaktoros azonosításban bárki számára használható. Ilyen pl. az Authenticator Plus, amely indítása után azonosítja a felhasználót (akár ujjlenyomat alapján is) majd generál egy számsort, mely a bejelentkezéshez második faktorként használható. Egy ilyen egy percig érvényes, ez után újat fog generálni. A kétfaktoros authentikáció problémát okoz, ha a felhasználó elhagyja a második faktor előállítására szolgáló eszközt, pl. a mobiltelefonját. Ezért a szoftverek egy része a telepítéskor ad néhány darab kódot, amiket egyszer fel lehet használni második faktorként, ha nincs lehetőséged annak generálására. Az első dolgod persze ilyenkor az kell, hogy legyen, hogy ezt követően kikapcsolod a kétfaktoros azonosítást a rendszeredből.
Tipp
A többfaktoros és a többlépcsős azonosítást a szakma megkülönbözteti, az elsőnél nem tudható, hogy egy hibás belépési folyamat mely eleme hiúsult meg, míg az utóbbinál az egyes lépéseken sorban kell végighaladni. Így a Google beléptetési rendszere többlépcsős, a név és a jelszó megadása után, annak helyessége esetén kell megadni a Google által kiküldött biztonsági kódot.
15.4. Ellenőrző kérdések¶
Mi az ssh?
Mi a különbség a telnet és az ssh közt?
Hogyan használható az ssh unix környezetben?
Hogyan konfigurálható az ssh Unix környezetben?
Ismertesd a Putty használatát és fő beállításait!
Hogyan költöztethető a Putty egy másik számítógépre?
Mi a nyilvános kulcsú azonosítás?
Hogyan használható a nyilvános kulcsú azonosítás a titkosított kapcsolat kiépítése és fenntartása során?
Hogyan használható a nyilvános kulcsú azonosítás a digitális aláírás során?
Hogyan használható a kulcspár a bejelentkezési folyamatban a jelszó helyettesítésére Putty és ssh parancs esetén?
Milyen hardvereszközöket használhatók a kulcspár előállítása és kezelése során?
15.5. Feladatok¶
Lépj be a columbo.uni-eszterhazy.hu gépbe és generálj egy 2048 bites rsa kulcspárt!
A vmWare-en levő saját szerverén generálj egy ugyanilyen kulcspárt a root számára!
Lépj be a saját szerveréről a columbo.uni-eszterhazy.hu-ba!
Győződj meg arról, hogy a
.ssh
könyvtárban létrejött azauthorized_keys
fájl!Gondoskodj arról, hogy a saját gépéről jelszó nélkül be tudj jelentkezni a columbo.uni-eszterhazy.hu gépbe!