Scroll to navigation

SSH(8) SSH SSH(8)

NÉV

ssh - biztonságos shell kliens (távoli gépre való belépésre szolgáló program)
 

ÁTTEKINTÉS

ssh [-l login_name] hostname [parancs]
 
ssh [-a] [-c idea|blowfish|des|3des |arcfour|none] [-e escape_char] [-i identity_fájl] [-l login_name] [-n] [-k] [-V] [-o opciók] [-p port] [-q] [-P] [-t] [-v] [-x] [-C] [-g] [-L port:host:hostport] [-R port:host:hostport] hostname [parancs]
 

LEÍRÁS

Az ssh (Secure Shell) egy program, ami arra való, hogy távoli gépekre jelentkezzünk be és/vagy parancsokat hajtsunk végre távoli gépeken. Célja az, hogy helyettesítse az rlogin-t és az rsh-t, és biztonságos (titkosított) kapcsolatot biztosítson két gép között. X11 kapcsolatokat és tetszőleges TCP/IP portokat szintén lehet a biztonságos csatornára továbbítani (forwardolni).
Az ssh kapcsolódik és belép a megadott hostname gépre. A felhasználó több módszerrel is igazolhatja azonosságát.
Előszor is, ha az a gép, amelyről a felhasználó belép fel van sorolva az /etc/hosts.equiv -ban vagy az /etc/ssh/shosts.equiv -ban a távoli gépen, és a felhasználói nevek megegyeznek mindkét oldalon, akkor rögtön beengedik. Másodszor, ha a .rhosts vagy a .shosts fájl ott van a felhasználó home könyvtárában a távoli gépen és tartalmaz egy sort, amely a kliens gép nevét tartalmazza, a felhasználó beléphet. Az authentikációnak (authentication - hitelesítés, amikor bizonyítod, hogy az vagy, akinek mondod magad - a ford. megjegyzése) ezt a formáját általában nem engedélyezi a szerver, mert nem biztonságos.
A második (és elsődleges) lehetőség az authentikációra az rhosts vagy hosts.equiv módszer, RSA-alapú gép-authentikációval kombinálva. Ez azt jelenti, hogy a belépés csak akkor engedélyezett, ha az .rhosts, .shosts, /etc/hosts.equiv , vagy /etc/ssh/shosts.equiv, megengedi, és ezen kívül a kliens gép kulcsát ellenőrizni lehet (lásd a $HOME/.ssh/known_hosts és /etc/ssh/ssh_known_hosts -t a FÁJLOK részben). Ez az authentikációs módszer kizárja az "IP spoofing", "DNS spoofing" és a "routing spoofing" által kihasznált biztonsági lyukakat. [Megjegyzés a rendszergazdáknak: az /etc/hosts.equiv, .rhosts, és a rlogin/rsh protokollok általában eredendően nem biztonságosak és le kell tiltani őket, ha a biztonság fontos szempont.]
Harmadik authentikációs módszerként az ssh támogatja az RSA alapú authentikációt. Az elrendezés a nyilvános kulcsú kriptográfián alapul: vannak olyan titkosítási rendszerek, ahol a titkosítás és visszafejtés különböző kulcsok használatával történik, és a visszafejtéshez használt kulcsot nem lehet a titkosításhoz használt kulcsból kikövetkeztetni. Az RSA egy ilyen rendszer. Az elgondolás az, hogy minden felhasználó készít egy nyilvános/privát kulcspárt authentikációs célokra. A szerver tudja a nyilvános kulcsot, de a privát kulcsot csak a felhasználó ismeri. A $HOME/.ssh/authorized_keys fájl tartalmazza azokat a nyilvános kulcsokat, amelyekkel be lehet lépni. Amikor a felhasználó be akar lépni, az ssh program megmondja a szervernek, hogy melyik kulcspárt akarja authentikációra felhasználni. A szerver ellenőrzi, hogy a kulcs engedélyezve van-e, és ha igen, akkor úgy teszi próbára a felhasználót (pontosabban az általa futtatott ssh programot), hogy egy véletlen számot küld el neki, amit a felhasználó nyilvános kulcsával titkosít. Ezt csak a megfelelő privát kulcs segítségével lehet visszafejteni. Ezután a felhasználó kliense visszafejti a privát kulcsal, így bebizonyítja, hogy ismeri a a privát kulcsot anélkül, hogy azt elküldené a szervernek.
Az ssh automatikusan alkalmazza az RSA authentikációs protokollt. A felhasználó az ssh-keygen(1) futattásával automatikusan létrehozza az ő RSA kulcspárját. Ezzel a privát kulcs a .ssh/identity -ba kerül, míg a nyilvános kulcs a .ssh/identity.pub -ba, a felhasználó home könyvtárában. A felhasználónak ezután a saját identity.pub -ját a .ssh/authorized_keys -ba kell másolnia a home könyvtárában a távoli gépen (az authorized_keys fájl megfelelt a hagyományos .rhosts fájlnak, és soronként egy kulcsot tartalmaz, bár a sorok nagyon hosszúak lehetnek). Ezután a felhasználó beléphet, anélkül hogy a jelszavát megadná. Az RSA authentikáció sokkal biztonságosabb mint az rhosts authentikáció.
Az RSA authentikáció egy authentikációs közvetítő (agent) segítségével használható a legkényelmesebben. Lásd az ssh-agent(1) -et további információkért.
Egy negyedik authentikációs módszerként, az ssh támogatja a TIS authentikációs szerveren keresztüli authentikációt. Az elképzelés az, hogy az ssh megkéri a TIS authsrv(8) -et, hogy authentikálja a felhasználót. Előfordulhat, hogy a felhasználói nevek a TIS adatbázisban nem ugyanazok mint a lokákis gépen, például ha a felhasználó egy smartcard -al vagy Digipass-al authentikálja magát. Ebben az esetben a felhasználói név az adatbázisban általában csak az authentikációs eszköz sorozatszámaként ismert. Az /etc/ssh/sshd_tis.map fájl tartalmazza a lokális felhasználók ás a neki megfelelő TIS adatbázis-beli nevek közötti leképezést. Ha ez a fájl nem létezik, vagy a felhasználó nincs benne, akkor az ssh feltételezi, hogy a felhasználói név és a TIS adatbázis-beli név ugyanaz.
Ha a többi authentikációs módszer meghiúsul, az ssh jelszót kér a felhasználótól. A jelszót ellenőrzés céljából elküldi a távoli gépre, azonban mivel minden kommunikáció titkosítva van, a jelszót nem olvashatja el valaki, aki a hálózaton hallgatózik.
Amikor a felhasználó azonosságát elfogadja a szerver, akkor vagy végrehajtja a megadott parancsot, vagy belép a gépbe, és a felhasználónak egy szokásos shell-t ad a távoli gépen. Minden, a távoli parancsal vagy shell-el történő kommunikáció automatikusan titkosítva lesz.
Ha egy pszeudo-terminál volt allokálva (normális login session), a felhasználó kiléphet a "~." parancs segítségével és felfüggesztheti az ssh -t "~^Z" -vel.
 
Az összes forwardolt kapcsolatot ki lehet listázni egy "~#" -el, és ha a session a forwardolt X11 vagy TCP/IP kapcsolatok végetérésére várva blokkol, akkor "~&" -el háttérbe lehet küldeni (Ezt nem szabad addig hasznélni, amíg a felhasználó shellje aktív, mert akkor a shell "lógni" fog). Az összes escape-szekvenciát "~?" -el lehet kilistázni.
Egyetlen tilde (~) karaktert "~~" -ként lehet elküldeni (vagy úgy, hogy a tildét a fentiekben nem említett karakter követi). Az escape karakter csak akkor van különleges karakterként interpretálva, ha újsort követ. Az escape karaktert meg lehet változtatni a konfigurációs fájlokban vagy a parancssorban.
Ha az ssh nem foglal le egy pszeudo terminált, akkor a session átlátszó lesz, és lehet bináris adatok megbízható átvitelére használni. A legtöbb rendszerben az escape karakter ``none'' -ra (semmire) való állítása a sessiont átlátszóvá teszi akkor is, ha egy tty van használatban.
Egy session akkor ér véget, amikor a parancs végrehajtása vagy a shell a távoli gépen véget ér, és az összes X11 és TCP/IP kapcsolat lezárult. Az ssh a távoli program kilépési értékével (exit status) lép ki.
Ha a felhasználó X11-et használ (a DISPLAY környezeti változó be van állítva), az X11 displayhez való kapcsolat automatikusan forwardolódik a távoli géphez, olymódon, hogy minden a shellből (vagy parancsból) indított X11 program a titkosított csatornán jön át, az igazi X szerverrel való kapcsolat pedig a lokális gépről jön létre. A felhasználónak nem kell kézzel beállítania a DISPLAY -t. Az X11 kapcsolatok forwardolásást a parancssoron vagy a konfigurációs fájlokban lehet beállítani.
Az ssh által beállított DISPLAY a szerver gépre mutat, de zérónál nagyobb display számmal. Ez azért van, mert az ssh egy "proxy" X szervert állít fel a szerver gépen a kapcsolatok titkosított csatornán való továbbításához.
Az ssh automatikusan beállítja a szerveren az Xauthority adatokat is. Ehhez egy véletlenszerű authorizációs cookie-t generál, amit a szerveren tárol az Xauthority-ban, ellenőrzi, hogy az összes forwardolt kapcsolat ezzel a cookie-val jön-e, és kicseréli őket az igazi cookie-ra, amikor a kapcsolat megnyílik. Az igazi authentikációs cookie-t soha nem küldi el a szerver gépre, és semmilyen cookie-t nem küld el titkosítás nélkül.
Ha egy felhasználó egy authentikációs közvetítőt (agent) használ, akkor a közvetítőhöz való kapcsolatot automatikusan forwardolja a távoli gépre, hacsak ez nincs letiltva a parancssoron vagy egy konfigurációs fájlban.
Tetszőleges TCP/IP kapcsolatoknak a biztonságos csatornán való forwardolását a parancssoron vagy egy konfigurációs fájlban lehet megadni. A TCP/IP forwardolásnak egy lehetséges alkalmazása egy elektronikus pénztárcához való biztonságos kapcsolódás; egy másik a tűzfalakon való átjutás.
Az ssh automatikusan fenntart és ellenőriz egy adatbázist, amely tartalmazza az összes olyan gép RSA-alapú azonosítását, amellyel valaha is használva volt. Az adatbázis az .ssh/known_hosts -ban van, a felhasználó home könyvtárában. Ezen kívül az ismert gépeket az /etc/ssh/ssh_known_hosts -ban is leellenőrzi. Minden új gép automatikusan hozzáadódik a felhasználó fájljához. Ha egy gép nyilvános kulcsa megváltozik, az ssh figyelmeztet és megtiltja a jelszóval való belépést, nehogy a felhasználó jelszavát egy "trójai faló" lopja el. Ennek a mechanizmusnak egy másik célja a "középen a támadó" (man-in-the-middle attack) megakadályozása, amely egyébként meghiúsítaná a titkosítást. A StrictHostKeyChecking opciót (lásd az alábbiakban) lehet arra használni, hogy megakadályozzuk az olyan gépre való belépést, amelyeknek a kulcsa nem ismert vagy megváltozott.
 

OPCÍÓK

-a
Megtiltja az authentikációs közvetítő (agent) forwardolását. Ezt egy gépektől függő módon a konfigurációs fájlban is meg lehet adni.
-c idea|des|3des|blowfish|arcfour|none
A session titkosításának a módját adja meg. Az idea az alapértelmezett. Biztonságosnak tartják. A des az adattitkosítási szabvány (data encryption standard), de feltörhető a kormányzatok, nagyobb vállalatok és a fontosabb bűnüldoző szervek által. A 3des (triple-des) egy titkosítás-visszafejtés-titkosítás három különboző kulcsal. Valószínűleg biztonságosabb mint a DES. Ez az alapértelmezett, ha valamelyik oldal nem támogatja az IDEA-t. A blowfish Bruce Schneier által kitalált titkosítási algoritmus, ami 128 bites kulcsokat használ. Az arcfour egy 1995-ben az Usenet News-ben publikált algoritmus. Úgy tartják, hogy ez ugyanaz mint az RSA Data Security által használt RC4 titkosítás (az RC4 az RSA Data Security bejegyzett védjegye). Ez a jelenleg támogatott leggyorsabb algoritmus. none esetén egyáltalán nincs titkosítás - ezt csak hibakeresésre szánták, és a kapcsolat nem biztonságos.
-e ch|^ch|none
Beállítja a pty-vel rendelkező session-ök számára az escape karaktert (alapértelmezett: ~). Ez csak a sor elején számít escape karakternek. A pont által követett escape karakter bezárja a kapcsolatot, a control-Z által követve felfüggeszti a kapcsolatot, és önmaga által követve egyszer küldi el az escape karaktert. A karakternek a ´none´ -ra való állítása letilt minden escape-t és teljesen átlászóvá teszi a session-t.
-f
A háttérbe teszi az ssh -t az authentikáció befejezése és a forwardolások létrehozása után. Ez hasznos ha az ssh jelszót vagy jelmondatot (passphrase) kér, de a felhasználó a háttérben akarja futtatni. Szkriptekben is hasznos lehet. Ez az opció a -n opciót is magában foglalja. A távoli gépeken levő X11 programok elindításának az ajánlott módja valami "ssh -f gép xterm" szerű.
-i identity_fájl
Megadja, hogy melyik fájlból legyen kiolvasva a privát kulcs az RSA authentikációhoz. Az alapértelmezett a .ssh/identity a felhasználó home könyvtárában. Identity fájlokat gépektől függő módon a konfigurációs fájlokban is meg lehet adni. Lehetséges több -i opciót is megadni (és a konfigurációs fájlokban is lehet több privát kulcs).
-k
Letiltja a kerberos ticket-ek forwardolását. Ezt szintén meg lehet adni gépektől függő módon a konfigurációs fájlokban is.
-l login_name
Meghatározza, hogy milyen felhasználói néven lépjen be a távoli gépre. Ezt szintén meg lehet adni gépektől függő módon a konfigurációs fájlokban is.
-n
A /dev/null -ból irányítja át a stdin-t (vagyis gyakorlatilag megakadályozza a stdin-ról való olvasást) Ezt használni kell, amikor az ssh a háttérben fut. Egy szokásos trükk ezt a távoli gépen levő X11 programok futtatására használni. Például "ssh -n shadows.cs.hut.fi emacs &" egy emacs-ot indít el a shadows.cs.hut.fi -n, és a X11 kapcsolat automatikusan forwardolódik a titkosított csatornán. Az ssh program a háttérbe kerül. (Ez nem működik, ha az ssh -nak jelszóra vagy jelmondatra van szüksége; erre lásd az -f opciót.)
-o 'opciók'
Ezt arra lehet használni, hogy a konfigurációs fájlok formátumában adjunk meg opciókat. Ez olyan opciók esetén hasznos, amelyeknek nincs külön parancssoron használható flag-jük. Az így megadott opcióknak ugyanaz a formátumuk mint egy konfigurációs fájl-beli sornak.
-p port
Megadja, hogy a távoli gép melyik portjára csatlakozzunk. Ezt szintén meg lehet adni gépektől függő módon a konfigurációs fájlokban is.
-q
Csendes (quiet) üzemmód. Ilyenkor a figyelmeztetések és a diagnosztikai üzenetek nem íródnak ki, csak a végzetes hibák.
-P
Nem privilégizált portot használ. Ilyenkor nem tudod az rhosts vagy a rsarhosts authentikációt használni, de át tud menni olyan tűzfalakon, amelyek nem engednek át privilégizált forrás-portról induló csomagokat.
-t
Kényszeríti a pseudo-tty lefoglalást. Ezt például távoli gépeken futó képernyő-alapú programok futtatására lehet használni (például amelyek menüket használnak).
-v
Bőbeszédő (verbose) üzemmód. Ilyenkor az ssh debugging üzeneteket ír ki a működéséről. Ez a kapcsolatfelépítéssel, authentikációval és a konfigurációval kapcsolatos problémák hibakeresésénél hasznos.
-V
Csak kiírja a verziószámot és kilép.
-g
Megengedi, hogy távoli gépek lokális port-forwardoló portokra kapcsolódjanak. Alapértelmezés szerint csak a localhostról lehet a lokálisan lekötött (bind) portokra csatlakozni.
-x
Letiltja az X11 forwardolást. Ezt szintén meg lehet adni gépektől függő módon a konfigurációs fájlokban is.
-C
Az összes adat (beleértve a stdin-t, stdout-ot, stderr-t és a forwardolt X11 és TCP/IP kapcsolatokat) tömörítve lesz. A tömörítési algoritmus ugyanaz mint a gzip által használt, és a "szintjét" a CompressionLevel opcióval (lásd alább) lehet beállítani. A tömörítés hasznos modemvonalakon és egyéb lassú kapcsolatok esetén, de a gyors hálózatok esetén csak lassítani fogja a dolgokat. Ezt szintén meg lehet adni gépektől függő módon a konfigurációs fájlokban is, lásd a Compress opciót alább.
-L port:host:hostport
Forwardol egy adott portot a lokális (kliens) gépről egy távoli gépre. Ez úgy működik, hogy lefoglal egy socket-et, hogy a port -on várakozzon (listen) a lokális oldalon, és valahányszor egy kapcsolat jön erre a portra, azt a biztonságos csatornán keresztül forwardolja, és a host:hostport -re a távoli gépről lép be. A port-forwardolást a konfigurációs fájlban is specifikálni lehet. Csak a root forwardolhat privilégizált portokat.
-R port:host:hostport
Forwardol egy adott portot a távoli (szerver) gépről egy lokális gépre. Ez úgy működik, hogy lefoglal egy socket-et, hogy a port -on várakozzon (listen) a távoli oldalon, és valahányszor egy kapcsolat jön erre a portra, azt a biztonságos csatornán keresztül forwardolja, és a host:hostport -re a lokális gépről lép be. A port-forwardolást a konfigurációs fájlban is specifikálni lehet. A távoli gépen rootként kell belépnünk, ha privilégizált portokat akarunk forwardolni.
 

KONFIGURÁCIÓS FÁJLOK

Az ssh a következő forrásokból veszi a konfigurácós adatait (ebben a sorrendben): parancssorbeli opciók, felhasználó konfigurációs fájlai ( $HOME/.ssh/config), és a renszerszintű konfigurációs fájl ( /etc/ssh/ssh_config). Minden paraméter az így kapott első értéket kapja. A konfigurációs fájlok "Host" specifikációk által behatárolt részeket tartalmaznak, és egy adott rész csak azokra a gépekre vonatkozik, amelyek illeszkednek a specifikációban megadott mintára. A parancssoron megadott gépnév kerül illesztésre.
Mivel minden paraméter az első értéket kapja, az inkább egy adott gépre specifikus deklarációkat a fájl elején érdemes megadni, az általánosabb default-okat pedig a végén.
A konfigurációs fájlnak a következő formátuma van:
Az üres sorok és a ´#´ -el kezdődő sorok megjegyzések.
Egyébként pedig egy sor formátuma "kulcsszó argumentumok" vagy "kulcsszó = argumentumok". A lehetséges kulcsszavakat és a jelentésüket lásd az alábbiakban (megjegyzés: a konfigurációs fájlokban különbség van a kisbetű és a nagybetű közott, de a kulcsszavaknál ez nem számít):
 
Host
Az ezt követő deklarációkat korlátozza, hogy csak a kulcsszó után következő mintára illeszkedő gépnevekre legyen érvényes (egészen a következő Host kulcsszóig). A ´*´ és a ´?´ wildcard-ként használható a mintákban. Ha a minta egyetlen ´*´ -ből áll, akkor az az összes gépre vonatkozó globális defaultot jelent. A gépnév ilyenkor a parancssoron megadott hostname argumentum (vagyis a név nincs kanonikus alakba hozva az illeszkedésvizsgálat előtt).
 
BatchMode
Ha ez "yes" -re van állítva, akkor a jelszó/jelmondat megkérdezése letiltódik. Ezt akkor hasznos, ha szkriptekből vagy egyéb automatizált eszközökből hívod, és nincs felhasználó, aki megadhatná a jelszót. Az argumentum "yes" vagy "no" kell legyen.
 
Cipher
Meghatározza a session titkosításához használat módszert. Jelenleg az idea, des, 3des, blowfish, arcfour és none vannal támogatva. A alapértelmezett az "idea" (vagy a "3des" ha az "idea"-t nem támogatja mindkét gép). A "none" esetén nincs titkosítás - ezt csak hibakeresésre szabad használni, mert ilyenkor a kapcsolat nem biztonságos.
 
ClearAllForwardings
Kitörli az összes forwardolást, miután beolvasta az összes konfigurációs fájlt, és a parancssort is. Ez arra jó, hogy a konfigurációs fájlokban található forwardolásokat letiltsd, amikor egy második kapcsolatot akarsz létrehozni egy olyan géppel, amelynek a konfigurációs fájlában a forwardolás be van állítva. Az scp ezt alapértelmezés szerint beállítja, így működni fog még akkor is, ha a konfigurációs fájban forwardolások vannak beállítva.
 
Compression
Meghatározza hogy legyen-e tömörítés használva. Az argumentum "yes" vagy "no" kell legyen.
 
CompressionLevel
Meghatározza a tömörítés szintjét, ha a tömörítés engedélyezve van. Az argumentum egy 1 (gyors) és 9 (lassú, de a legjobb) közötti szám kell legyen. Az alapértelmezett szint 6, ami jó a legtöbb alkalmazás szempotjából. Ezeknek az értékeknek a jelentése ugyanaz, mint a GNU GZIP esetén.
 
ConnectionAttempts
Meghatározza, hogy hányszor próbálkozzon (másodpercenként egyszer), mielőtt az rsh-val próbálkozna, vagy kilépne. Az argumentum egy egész szám kell legyen. Ez hasznos lehet szkriptekben, ha a kapcsolatfelvétel néha nem sikerül.
 
EscapeChar
Beállítja az escape karaktert (az alapértelmezett: ~). Az escape karaktert a parancssoron is be lehet állítani. Az argumentum egy betű által követett ´^´ kell legyen, vagy ``none'', hogy az escape karaktert teljesen letiltsuk (és így a kapcsolatot átlátszóvá tegyük a bináris adatok számára)
 
FallBackToRsh
Meghatározza, hogy ha az ssh kapcsolat nem sikerül "connection refused" hiba miatt (amit valószínüleg az okoz, hogy a másik gépen nem fut az sshd ), akkor az rsh legyen-e használva automatikusan helyette (egy megfelelő figyelmeztetés után, mely szerint a session nem lesz titkosítva). Az argumentum "yes" vagy "no" kell legyen.
 
ForwardAgent
Meghatározza, hogy egy authentikációs közvetítővel való kapcsolat (ha van) forwardolva legyen-e a távoli gépre. Az argumentum "yes" vagy "no" kell legyen.
 
ForwardX11
Meghatározza , hogy az X11 kapcsolatok automatikusan át legyenek-e irányítva a biztonságos csatornára a DISPLAY beállításával egyidejűleg. Az argumentum "yes" vagy "no" kell legyen.
 
GatewayPorts
Meghatározza, hogy távoli gépek kapcsolódhatnak-e a lokálisan forwardolt portokra. Az argumentum "yes" vagy "no" kell legyen.
 
GlobalKnownHostsFile
Meghatározza, hogy a /etc/ssh/ssh_known_hosts helyett melyik fájl legyen használva.
 
HostName
Meghatátozza annak a gépnek az igazi nevét, amelyikre be akarunk lépni. Ez arra jó, hogy rövidített neveket használjunk. A default a parancssoron megadott név. A numerikus IP címek szintén engedélyezve vannak (a parancssoron is, és a HostName specifikációkban is).
 
IdentityFile
Meghatározza, hogy a felhasználó RSA authentikációs kulcsa melyik fájlból legyen kiolvasva (az alapértelmezett az .ssh/identity a felhasználó home könyvtárában). Ezenkívül egy esetleges authentikációs közvetítő által megadott identitások is felhasználódnak. A fájl neve tertalmazhatja a tildét, hogy a felhasználó home könyvtárát jelezze. Több identitás-fájlt is meg lehet adni a konfigurációs fájlokban, ilyenkor ezek az adott sorrendben lesznek kipróbálva.
 
KeepAlive
Meghatározza, hogy a rendszer küldjön-e "maradj élve" (keepalive) üzeneteket a túloldalnak. Ha küld, akkor a kapcsolat megszünése, vagy a gépek egyikének a meghalása megfelelően észlelődik. Ugyanakkor ez azt is jelenti, hogy a kapcsolatok megszakadnak akkor is ha a hálózat csak ideiglenesen nem működik, és van aki ezt idegesítőnek tartja.
 
A alapértelmezett az hogy "yes" (küldjön ilyeneket), és a kliens észre fogja venni ha a szerver vagy a hálózat lehal. Ez fontos a scriptekben, és sok felhasználó szintén szereti.
 
A keepalives-ek letiltásához ezt az értéket "no"-ra kell állítani mind a szerver, mind a kliens konfigurációs fájljaiban.
 
KerberosAuthentication
Meghatározza, hogy legyen-e Kerberos V5 authentikáció használva.
 
KerberosTgtPassing
Meghatározza, hogy legyen-e egy Kerberos V5 TGT a szervernek elküldve.
 
LocalForward
Azt állítja be, hogy egy lokális TCP/IP port forwardolva legyen a biztonságos csatornán keresztül a megadott gép megadott portjára. Az első argumentum egy portszám kell legyen, a második meg egy gép:port. Egyszerre több forwardolást is be lehet állítani, és további forwardolásokat lehet a parancssoron hozzáadni. Privilégizált portokat csak a root forwadolhat.
 
NumberOfPasswordPrompts
 
Meghatározza, hogy az ssh hányszor kérje el a jelszót mielőtt feladná. Mivel a szerver szintén limitálja a próbálkozások számát (jelenleg 5 a maximum), ezért hatástalan ennél nagyobb értékre állítani. Az alapértelmezett érték egy.
 
PasswordAuthentication
Meghatározza legyen-e jelszó-authentikáció használva. Az argumentum "yes" vagy "no" kell legyen.
 
PasswordPromptHost
Meghatározza, hogy benne legyen-e a távoli gép neve a jelszó promptban. Az argumentum "yes" vagy "no" kell legyen.
 
PasswordPromptLogin
Meghatározza, hogy benne legyen-e a távoli login név a jelszó promptban. Az argumentum "yes" vagy "no" kell legyen.
 
Port
Meghatározza, hogy a távoli gépen milyen porton probálkozzon. A default 22.
 
ProxyCommand
Meghatározza, hogy milyen parancs segítségével kapcsolódjunk egy szerverre. A parancs-string a sor végéig tart, a /bin/sh hajtja végre. A parancs-stringben a %h helyére a szerver gép neve kerül, %p helyére pedig a portszám. A parancs szinte bármi lehet, a stdin-ről kell olvasnia, és a stdout-re írnia. Végül egy valamilyen gépen futó sshd szerverre kell kapcsolódnia, vagy "sshd -i" -t kell futtatnia valahol. A gép-kulcs kezelése a szerver gép HostName-ja segítségével (aminak a defaultja a felhasználó által beírt név) történik. (Megjegyzés: az ssh -t lehet úgy konfigurálni, hogy a SOCKS rendszert támogassa: ehhez fordításkor a --with-socks4 vagy --with-socks5 opciókat kell megadni).
 
RemoteForward
Azt állítja be, hogy egy távoli TCP/IP port forwardolva legyen a biztonságos csatornán keresztül a megadott lokális gép megadott portjára. Az első argumentum egy portszám kell legyen, a második meg egy gép:port. Egyszerre több forwardolást is be lehet állítani, és további forwardolásokat lehet a parancssoron hozzáadni. Privilégizált portokat csak a root forwadolhat.
 
RhostsAuthentication
Meghatározza, hogy az rhosts authentikáció ki legyen-e próbálva. Megjegyzés: ez a deklaráció csak a kliens viselkedését befolyásolja, és a biztonságra semmi hatása nincs. Az rhosts authentikációval való próbálkozás letiltása csökkentheti az authentikációs időt lassú kapcsolatok esetén, ha az rhosts authentikáció nincs használatban. A legtöbb szerver nem engedélyezi az az rhosts authentikációt, mert az nem biztonságos (lásd RhostsRSAAuthentication) Az argumentum "yes" vagy "no" kell legyen.
 
RhostsRSAAuthentication
Meghatározza, hogy az RSA gép-authentikációval kombinált rhosts authentikáció ki legyen-e próbálva. Ez az elsődleges authentikációs módszer a legtöbb esetben. Az argumentum "yes" vagy "no" kell legyen.
 
RSAAuthentication
Meghatározza, hogy az RSA authentikáció ki legyen-e próbálva. Az argumentum "yes" vagy "no" kell legyen. Az RSA authentikáció csak akkor lesz megpróbálva, ha egy identity fájl létezik, vagy ha egy authentikációs közvetítő fut.
 
StrictHostKeyChecking
Ha ez a flag "yes" - re van állítva, akkor az ssh soha nem fogja a gép-kulcsokat a $HOME/.ssh/known_hosts fájlhoz automatikusan hozzáadni, és megtagadja, hogy olyan gépekre lépjen be, amelyeknek a kulcsa megváltozott. Ez maximális védelmet nyújt a trójai faló típusú támadások ellen. Ugyanakkor eléggé idegesítő tud lenni, ha nincs egy jó /etc/ssh/ssh_known_hosts fájlod installálva és gyakran próbálsz új gépekre kapcsolódni. Gyakorlatilag ez az opció arra kényszeríti a felhasználót, hogy kézzel adja hozzá az összes új gépet. Általában "ask"-ra állítják ezt az opciót, és az új gépek automatikusan hozzáadódnak az ismert gépeket tartalmazó fájlhoz, miután a felhasználó megerősítette, hogy valóban ezt akarja. Ha ez "no"-ra van állítva, akkor az új gépek automatikusan adódnak hozzá az ismert gépeket tartalmazó fájlhoz. Az ismert gépek kulcsai minden esetben automatikusan ellenőrizve lesznek. Az argumentum " yes", " no" vagy "ask" kell legyen.
 
TISAuthentication
Meghatározza, hogy megpróbálkozzunk-e TIS authentikációval. Az argumentum "yes" vagy "no" kell legyen.
 
UsePrivilegedPort
Meghatározza, hogy használjunk-e privilégizált portokat, amikor a másik oldalhoz hozzákapcsolódunk. Az alapértelmezett az, hogy "yes", ha az rhosts authentikációk engedélyezve vannak.
 
User
Meghatározza, hogy milyen felhasználóként lépjen be. Ez akkor lehet hasznos, ha a különböző gépeken más-más a felhasználói neved, és nem akarod azzal veszíteni az időt, hogy a parancssoron adod meg a felhasználói nevet.
 
UserKnownHostsFile
Meghatározza, hogy a $HOME/.ssh/known_hosts helyett milyen fájlt használjunk.
 
UseRsh
Meghatározza, hogy egy adott gépre rögtön az rlogin/rsh legyen-e használva. Előfordulhat, hogy egy gép egyáltalán nem támogatja az ssh protokollt. Ilyenkor ssh rögtön elindítja az rsh -t. Az összes többi opció (kivéve a HostName-t) ignorálva lesz. Az argumentum "yes" vagy "no" kell legyen.
 
XAuthLocation
Meghatározza a elérési utat a xauth programhoz.
 

KÖRNYEZET

Az ssh normális esetben a következő környezeti változókat állítja be:
DISPLAY
A DISPLAY változó az X11 szerver helyére utal. Ezt az ssh automatikusan egy "gépnév:n" alakra állítja be, ahol a gépnév annak a gépnek a neve, ahol a shell fut, és n egy >= 1 egész szám. Az ssh ezt arra használja, hogy az X11 kapcsolatokat a biztonságos csatornán forwadolja. Jobb, ha a felhasználó nem állítja be maga a DISPLAY-t expliciten, mert ez azt eredményezi, hogy az X11 kapcsolat nem lesz biztonságos. (és a felhasználó kénytelen lesz magának bemásolni a szükséges authorizációs cookie-kat).
HOME
A felhasználó home könyvtára.
LOGNAME
Az USER szinonimája - az olyan rendszerekkel való kompatibilitás céljából, amelyek ezt a változót használják.
MAIL
A felhasználó mailbox-a.
PATH
Egy olyan alapértelmezett PATH-ra van beállítva, amelyet fordítás közben lehet megadni az ssh -nak, vagy egyes rendszerekben az /etc/environment -ban vagy az /etc/default/login -ban.
SSH_AUTH_SOCK
Ha létezik, arra van használva, hogy egy olyan unix-domain sockethez vezető path-ot jelezzen, ami egy authentikációs közvetítővel (avgy lokális megfelelőjével) való kapcsolathoz kell.
SSH_CLIENT
A kapcsolat kliens részét jelzi. Ez a változó három space-el határolt értéket tartalmaz: kliens ip-cím, kliens portszám és szerver portszám.
SSH_ORIGINAL_COMMAND
Ez az eredeti parancssor kényszerített parancsfuttatás esetén. Arra lehet használni, hogy elérd az argumentumokat stb. a túloldalról.
SSH_TTY
Ez a jelenlegi shellel vagy parancsal társított tty nevére (egy eszközhöz vezető útvonalra) van állítva. Ha a jelenlegi session-nak nincs tty-je, ez a változó nincs beálítva.
TZ
Az időzóna (timezone) változó a jelenlegi időzónát jelzi, ha az be volt állítva a démon indításakor. (A démon átadja ezt az értéket az új kapcsolatoknak.)
USER
A belépett felhasználó neve.
Ezeken kívül az ssh elolvassa az /etc/environment és $HOME/.ssh/environment, fájlokat, és VÁLTOZÓNÉV=érték formátumú sorokat ad a környezethez. Egyes rendszereken további mechanizmusok is létezhetnek a környezet beállítására, így például az /etc/default/login Solaris-on.
 

FÁJLOK

$HOME/.ssh/known_hosts
Olyan gépek kulcsai, amelyikbe a felhasználó belépett (és nincsenek benne a /etc/ssh/ssh_known_hosts -ban). Lásd még az sshd kézikönyvlapot.
$HOME/.ssh/random_seed
A véletlenszám-generátor inicializálásához használt fájl. Ez a fájl fontos adatokat tartalmaz, a felhasználónak legyen írási/olvasási joga rá, de másoknak semmi. Ez a fájl akkor keletkezik, amikor egy program első ízben fut, és automatikusan változik. A felhasználónak sohasem kell elolvasnia vagy módódítania ezt a fájlt.
$HOME/.ssh/identity
A felhasználó RSA authentikációs identitását tartalmazza. Ez a fájl fontos adatokat tartalmaz, a felhasználónak legyen írási/olvasási joga rá, de másoknak semmi. Ennek a kulcsnak a generálásákor egy jelmondatot is meg lehet adni, ez a jelmondat arra használható, hogy ennek a fájlnak az érzékeny részét titkosítsa az IDEA segítségével
$HOME/.ssh/identity.pub
Az authentikációra használt nyilvános kulcsot tartalmazza (az identitás-fájl nyilvános részét olvasható formában) ennek a fájlnak a tartalmát a $HOME/.ssh/authorized_keys fájlhoz kell hozzáadni minden olyan gépen, amelyikre RSA authentikáció segítségével akarsz belépni. Ez a fájl nem érzékeny, és lehet (de nem szükségszerű) mindenki által olvashatóvá tenni. Ezt a fájlt soha nem használják automatikusan, és nincs is szükség rá, csak a felhasználó kényelme kedvéért van ott.
$HOME/.ssh/config
Ez a konfigurációs fájl a felhasználóra jellemző beállításokat tartalmazza. A fájl formátuma a fentiekben van leírva. Ezt a fájlt az ssh kliensek használják. Általában ez a fájl nem tartalmaz érzékeny információkat, de az ajánlott jogosultságok írás/olvasás a felhasználónak, és semmi jog másoknak.
$HOME/.ssh/authorized_keys
Azokat az RSA kulcsokat tartalmazza, amelyek használhatók arra, hogy segítségével e felhasználóként be lehessen lépni. Ennek a fájlnak a formátuma az sshd kézikönyvlapban van leírva. Legegyszerűbb esetben a formátum ugyanaz mint a .pub identitás fájlok esetén.
 
Ez a fájl nem tartalmaz nagyon érzékeny információkat, de az ajánlott jogosultságok írás/olvasás a felhasználónak, és semmi jog másoknak.
/etc/ssh/ssh_known_hosts
Az ismert gépek kulcsainak rendszerszintű listája. Ezt a fájlt a rendszergazdának kell elkészítenie, hogy a hálózaton belüli összes gép nyilvános kulcsát tartalmazza. Ennek a fájlnak mindenki által olvashatónak kell lennie. Ha egy gépnek több neve is van, akkor az összes ilyen gépnevet fel kell sorolni, vesszővel elválasztva. A formátumot az sshd kézikönyvlap írja le.
Belépéskor a kanonikus gépnév (amit a nameserver visszaad) az, amit az sshd a kliens gép identitásának a megállapítására használ belépéskor; a többi névre azért van szükség, mert az ssh nem konvertálja a felhasználó által megadott nevet kanonikus névvé, mielőtt egy kulcsot ellenőrizne, mivel egyébként valaki, aki hozzáfér a nameserver-hez, átverhetné a gép-authentikációt.
/etc/ssh/ssh_config
A rendszerszintű konfigurációs fájl. Ez a fájl defaultokat specifikál olyan értékek számára, amelyek nincsenek a felhasználó konfigurációs fájljában, vagy olyan felhasználóknak, akiknek nincs konfigurációs fájljuk. Ennek a fájlnak mindenki által olvashatónak kell lennie.
$HOME/.rhosts
Ez a fájl az .rhosts authentikáció során van használva, mégpedig arra, hogy felsorolja azokat a gép/felhasználó párokat, amelyeknek a belépés engedélyezve van. (Megjegyzés: ezt a fájlt használja az rlogin és az rsh is, ezért használatuk nem számít biztonságosnak) A fájl minden sora tartalmaz egy gépnevet (abban a kanonikus formában, ahogy a nameserverek adják), utána pedig egy azon a gépen található felhasználó felhasználói nevét, vesszővel elválasztva. Ennek a fájlnak a felhasználó tulajdonában kell lennie, és nem szabad másoknak is írási jogot adni rá.
Megjegyzés: alapértelmezés szerint az sshd sikeres RSA gép-authentikációt igényel mielőtt megengedné az .rhosts authentikációt. Ha egy szerver géped nem tartalmazza egy kliens gép kulcsát az /etc/ssh/ssh_known_hosts -ben, akkor az $HOME/.ssh/known_hosts -be is teheted. A legegyszerűbb módja ennek az, hogy a szerverről belépsz a kliensre, ekkor a kliens gép kulcsa automatikusan hozzáadódik a $HOME/.ssh/known_hosts -hoz.
$HOME/.shosts
Ezt a fájlt pontosan ugyanúgy kell használni mint a .rhosts -t. Csak azért van, hogy képes legyél az rhosts authentikációt használni az ssh -val, anélkül, hogy megenged az rlogin-t vagy az rsh-t.
/etc/hosts.equiv
Ez a fájl az .rhosts authentikáció során van használva. Kanonikus gépneveket tartalmaz, soronként egyet (a formátum teljes leírását lásd az sshd kézikönyvlapban). Ha egy kliens gép benne van ebben a fájlban, és a login nevek a szerveren és a kliensen megegyeznek, akkor a belépés automatikusan engedélyezve lesz. Ezen kívül sikeres RSA gép-authentikációra is szükség van normális esetben. Ennek a fájlnak csak a root által kell írhatónak lennie.
/etc/ssh/shosts.equiv
Ez a fájl pontosan úgy van feldolgozva, mint a /etc/hosts.equiv. Arra jó, hogy megengedje az ssh belépéseket, de megtiltsa az rsh/rlogin belépéseket.
/etc/ssh/sshrc
Az ebben a fájlban található parancsok akkor hajtódnak végre az ssh által, amikor felhasználó belép, közvetlenül azelőtt, hogy a felhasználó shellje (vagy parancsa) elindulna. Lásd az sshd kézikönyvlapot további információkért.
$HOME/.ssh/rc
Az ebben a fájlban található parancsok akkor lesznek végrehajtva az ssh által, amikor felhasználó belép, közvetlenül azelőtt, hogy a felhasználó shellje (vagy parancsa) elindulna. Lásd az sshd kézikönyvlapot további információkért.
 

INSTALLÁLÁS

Az ssh általában suid rootként van felinstallálva. A root jogokra csak az rhosts authentikáció miatt van szüksége (Az rhosts authentikáció azt igényli, hogy a kapcsolat egy privilégizált portról kezdeményeződjön, és ilyen portot csak root jogokkal lehet lefoglalni) Ezen kívül képesnek kell lennie arra, hogy a /etc/ssh/ssh_host_key -t elolvassa, hogy RSA gép authentikációt tudjon használni. Lehetséges az ssh -t root jogok nélkül használni, de akkor az rhosts authentikációt nem lehet használni. Az ssh eldobja az összes extra jogot, amint a kapcsolat a távoli géppel létrejött.
Mindent megtettünk azért, hogy az ssh biztonságos legyen. Ha ennek ellenére biztonsági problémát találsz, kérjük rögtön értesíts minket az <ssh-bugs@cs.hut.fi> címen.
 

SZERZŐ

Tatu Ylonen <ylo@ssh.fi>
Az újabb verziókról, levelezési listákról, és a többi kapcsolódó témáról az ssh WWW home page-n, a http://www.cs.hut.fi/ssh címen találsz információt.
 

LÁSD MÉG

sshd(8), ssh-keygen(1), ssh-agent(1), ssh-add(1), scp(1), make-ssh-known-hosts(1), rlogin(1), rsh(1), telnet(1)

MAGYAR FORDÍTÁS

Balázs-Csíki László <bcsl@elender.hu>
November 8, 1995 SSH