2024. április 30., kedd

Gyorskeresés

Cygwin SSH szerver Windows-on

  • (f)
  • (p)
Írta: |

Megjegyzem, hogy ez az írás tartalmaz(hat) olyan részeket amiket egy kezdő felhasználó nem ért.

[ ÚJ TESZT ]

Megjegyzem, hogy ez az írás tartalmaz(hat) olyan részeket amiket egy kezdő felhasználó nem ért. Érdemes először végig elolvasni majd dönteni, hogy kell-e ez neki vagy megvan nélküle.

Ha valaki otthoni SSH szerveren töri a fejét akkor annak biztos nem kell magyaráznom, hogy mi is az az SSH. Ezért ezt átugrom (Aki pedig kíváncsi: Wikipedia: SSH)
Programok százai nyújtanak erre lehetőséget, van amelyik szervízként fut, van amelyiket magunknak kell elindítani, van amelyik tele van különféle jóságokkal, van, amelyik képes csatornákat kezelni.
De akkor miért Cygwin? Mert ez egyszerre tud mindent.
Lássuk mi is ez: a Cygwin egy ingyenes, nyílt forráskódú program mely linux/unix környezetet hoz létre a futó Windows rendszeren (lesz majd /home, /mnt, meg mindenmiegymás ami linux alatt is létezik). A Win-es partíciókat persze ez alól is lehet írni/olvasni, ugyan úgy C-ként jelenik meg a C partíció a /home-ban.
Viszont: ez nem azt jelenti, hogy egy telepített linux/unix lesz az M$-be ágyazva. Nem lesz linux/unix az oprendszerünk és nem fogunk tudni linux csomagokat telepíteni alá (ha ez a célunk akkor újra kell forgatni a forrást és úgy telepíteni).
Ezt a jóságot a cygwin.com oldalról érdemes letölteni.
Mindenek előtt azonban: mivel egy szervert csinálsz a gépedből, állíts be egy jelszót a felhasználó nevedre (ugyanis ezzel fogsz majd bejelentkezni ssh alá).
Mivel SSH szerver lesz ezért feltételezem van internet, így nem fogok most minden installálási módra kitérni, csak az "Install from Internet" lesz leírva.
A telepítő 3. lépésében meg kell adni, hogy honnét lesz majd a cygwin futtatva ("Root directory", alapértelmezettként: C:\cygwin), kik fogják majd használni (az összes beregisztrált felhasználó a gépen vagy csak aki telepíti (alapértelmezett: mindenki)) és milyen környezetet szeretnénk létrehozni (unix bináris csomagokkal vagy DOS text csomagokkal (előbbi az alap)).
4. lépésben megmondhatjuk, hogy hova szeretnénk a kért forrásokat letölteni (ez a későbbi újratelepítésnél jöhet jól). Ha gondoljuk adjunk meg neki az előzőtől eltérő könyvtárat (így egyszerűbb a tisztogatás telepítés után. Ha nem akarjuk teljesen darabjaira szedni az adott csomagot majd újra felrakni azt, hogy aztán megint szétszedhessük akkor felesleges megtartani, nyugodtan törölhető a telepítő).
Utána meg kell adni az internetelérésünk módját (direktbe csatlakozunk a netre, az IE5 (?) beállításait akarjuk használni vagy esetleg van egy proxy szerverünk). Az esetek 80%-ában direkt kapcsolata van az otthoni felhasználónak.
Ha ez is kész akkor egy tükörszervert kell kiválasztanunk a letöltéshez. Megjegyzés: ha csak a cygwin-t tesszük fel és semmi más csomagot hozzá (SSH-hoz szükség van pár pluszra) akkor mindegy, hogy melyiket jelöljük. Ha valaki nem akar vesződni akkor "User URL" mellé írja be, hogy ftp://ftp.fsn.hu/. Next.
Láthatjuk, hogy valamit már tölt is. Az adott szerveren az elérhető csomagok listáját hozza létre és tárolja (egy ini fájlban).
No, jön a mókás rész. Állítsuk össze, hogy nekünk mi is kell.
Ami mindenképp: openssh. Ennek megtalálásához a legegyszerűbb mód: Kattintsunk a jobb felső sarokban a "View" gombra, így egy teljes, ABC sorrendbe rendezett listát kapunk az elérhető programokról (jobb szélen van a név). Ha megvan: kattintás a "Skip" feliraton, ezzel ott megjelenik a legfrissebb verziónak a száma, a "Bin?" oszlopban pedig egy X. Ez teljesen jó.
Ha valaki akar akkor még válogathat, hogy mi kell. Van SSL-től a sic-en keresztül a vim-ig minden.
Az SSH szerverhez a fen leírt elég. Next-re klikk után már le is szedi és az alap (pl bash, gawk, find, tar) és az általunk bejelölt csomagokat. Ez egyben a telepítési fázis is, mert miután leértek, települnek is. Az alap rendszerrel ez 60 Mb felett van, tehát eltarthat egy ideig.
A következő kérdés az, hogy hova kérünk ikonokat. Asztalra és/vagy a start menübe. Finish bezárja a telepítőt.
Most jön a kockább része:
XP-nél: Sajátgépre jobb katt -> Tulajdonságok. Felül: Haladó -> Környezeti változók
Vistánál: Sajátgépre jobb katt -> Tulajdonságok. "Haladó rendszerbeállítások" link, majd "Környezeti változók" gomb.
Win7-ben ugyan ott mint Vistában. Computer-re jobb klikk -> Properties -> Jobb oldalt "Advanced system settings" link, majd "Advanced" fülön alul "Environment Variables..." (Köszönet érte dew28-nak, aki látta azt amit én nem).
Itt alul katt az "Új"-ra, majd változónévnek: CYGWIN, értéknek pedig "ntsec tty" (idézőjel nélkül, persze).
Ezt követően az alsó listában keressük meg a "Path" változót és szerkesszük azt. Az érték mező végére szúrjuk oda, hogy ";c:\cygwin\bin" (amennyniben a c:\cygwin könyvtárba telepítettük. Amennyiben máshova, akkor azt az útvonalat a \bin-ig). Fogadjuk el, okézzuk le. Kész.
XP-n: indítsuk a cygwin-t az ikonnal, vistán jobb-klikk és "futtatás rendszergazdaként".
Gépeljük a következőket:
chmod +r /etc/passwd (olvasásjog a passwd fájlra)
chmod +r /etc/group (olvasásjog a group fájlra)
chmod 777 /var (teljes jog a /var könyvtárra. Ezt dolgunk végeztével állítsuk majd vissza chmod 644 /var paranccsal az eredetire)
ssh-host-config
Utóbbit lehet -y kapcsolóval is futtatni, de akkor YES lesz a válasz minden felmerülő kérdésre. Konkrétan: jogkör szétválasztás (a felhasználóknak a gépen különféle jogköre lehet adott fájlokra), lokális sshd felhasználó létrehozása a gépen és végül sshd futtatása szervízként.
Ha erre is bólintunk akkor a gép bekapcsolásával az ssh-szerver autómatikusan elindul. Ez azért jó, mert így nem kell minden alkalommal elindítani a cygwint és begépelni a "net start sshd" parancsot. Miért rossz? Nyitott port, támadási felület. Ha sokat használod majd a szervert akkor érdemes szervíznek betenni. Ha csak például az iskolából/munkahelyről hazasshzol akkor inkább futtasd kézzel.
Jöhet a teszt! Futó cygwin ablakba gépeld be a "net start sshd" parancsot.
Ha elindul, minden rendben, fut a szervered.
Ha nem, akkor érdemes a következőket kiadni:
chown system /etc/ssh*
chown system /var/empty or chown sshd_server /var/empty
net start sshd
Ha ez sem oldja meg, google ;)
Mivel minden felhasználó jelszóval lép be a gépen (ha nem és minden felhasználó hozzáfér a cygwin-hez, az gond. Hozz létre jelszót!) ezért futtassuk a következőket:
mkpasswd -cl > /etc/passwd
mkgroup --local > /etc/group
Ez szinkronizálja a windows felhasználók jelszavait a cygwin-es felhasználókével (értsd: mindenkinek az lesz a jelszava ssh bejelentkezéshez mint ami a windows-ra is).
Írd be, hogy "ssh localhost". Ha olyat kapsz, hogy
"The authenticity of host xx.xx.xx.xx can't be established .... Are you sure you want to continue connecting (yes/no)?", válaszolj YES-sel. Ha bármi mást, kapcsold ki a tűzfalad (vagy hozz létre egy kivételt) és próbáld újra.
A saját windows felhasználóneveddel és jelszavaddal jelentkezz most be. Siker? Kész vagy és rendesen működik :) Most már csak a routereden kell egy portforward-ot beállítani a gépedre (ha van routered) és ennyi.
Ja meg persze ha nem akarod mindig megjegyezni az IP-címed akkor regisztrálni a dyndns.com oldalon és beállítani vagy a gépeden, vagy a routereden.

Hirdetés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.