Provided by:
manpages-hu_20010119-5_all 
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_fjl] [-l login_name] [-n] [-k] [-V] [-o opcik] [-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_fjl
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 'opcik'
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 VLTOZNV=rtk 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>