A következő címkéjű bejegyzések mutatása: SSH. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: SSH. Összes bejegyzés megjelenítése

2017. január 26., csütörtök

Hogyan másolj fájlokat távolról SSH-n keresztül a jelszavad megadása nélkül


Az SSH egy életmentő, ha távolról kell kezelj egy számítógépet, de tudtad, hogy tudsz feltölteni és letölteni fájlokat is?

Ez a folyamat Linuxon és Mac OS-en működik, feltéve, hogy megfelelően konfiguráltak SSH hozzáféréshez. Ha Windowst használsz, használhatsz Cygwin-t, hogy Linux-szerű funkcionalitást kapj és egy kis finomhangolással az SSH szintén futni fog.

Fájlok másolása SSH-n keresztül

A secure copy egy igazán hasznos parancs és nagyon könnyen használható. Az alap formátuma a parancsnak az alábbi:

scp [options] eredeti_fájl cél_fájl

A nagyobb dió az az, hogy hogyan formázd a távoli részt. Amikor megcímzel egy távoli fájlt, az alábbi módon kell megtenned:

user@server:path/to/file

A server lehet URL vagy IP cím. Ezt követi egy kettőspont, majd a kérdéses fájl vagy mappa elérhetési útvonala. Nézzünk meg egy példát.

scp –P 40050 Desktop/url.txt yatri@192.168.1.50:~/Desktop/url.txt

Ennek a parancsnak a sajátossága a [-P] jelző (figyeld meg, hogy egy nagybetűs P). Ez lehetővé teszi számomra, hogy megadjak egy port számot, az alapértelmezett 22 helyett. Ez számomra szükséges, amiatt, ahogy konfiguráltam a rendszeremet.

Következő, az eredeti fájlom az "url.txt", ami egy "Desktop" nevű könyvtáron belül van. A célfájl a "~/Desktop/url.txt", ami ugyanaz, mint az "/user/yatri/Desktop/url.txt". A parancs a "yatri" nevű felhasználó által lesz futtatva a távoli számítógépen "192.168.1.50".

    
Mi van akkor, ha az ellenkezőjét kell csinálnod? Képes vagy másolni fájlokat a távoli szerverről hasonlóan.


Itt átmásoltam egy fájlt a távoli számítógép "~/Desktop/" mappájából a saját számítógépem "Desktop" mappájába.

Teljes könyvtárak másolásához az [-r] jelzőt kell használd (figyeld meg, hogy kisbetű az r).


Kombinálhatod is a jelzőket. Az scp –P –r … helyett ezt is csinálhatod: scp –Pr …

A legkeményebb rész itt az, hogy a parancssoros kiegészítés itt nem mindig működik, így hasznos, ha van egy másik terminálunk egy futó SSH folyamattal, így tudjuk, hogy hova rakjuk a dolgokat.

SSH és SCP jelszavak nélkül

A secure copy nagyszerű. Belerakhatod scriptekbe és biztonsági mentést csinálhatsz vele távoli számítógépeken. A probléma az az, hogy nem mindig vagy jelen, hogy beírd a jelszót. Valamint legyünk őszinték, igazán nagy fáradtság beírni a jelszót egy olyan távoli géphez, amihez egyértelműen van hozzáférésed állandóan.

Nos, megkerülhetjük a jelszavak használatát kulcs fájlok használatával. Generálhat nekünk a számítógép két kulcs fájlt - egy publikust, ami a távoli szerveren marad és egy privátot, ami a számítógépeden van és biztonságban kell legyen - és ezek lesznek használva a jelszavak helyett. Elég kényelmes, ugye?

A saját gépeden írd be az alábbi parancsot:

ssh-keygen –t rsa

Ez elkészíti a két kulcsot és beleteszi őket ide:

~/.ssh/

Az "id_rsa" nevű a privát kulcsod és az "id_rsa.pub" a publikus kulcsod.


 A parancs megadása után rákérdez, hogy hova szeretnéd menteni a kulcsot. Megnyomhatod az Enter-t a fent említett alapértelmezések használatához.

Azután megkér, hogy írj be egy jelmondatot. Nyomj Enter-t, hogy ezt üresen hagyd, majd nyomd meg újra, amikor megerősítést kér. A következő lépés a publikus kulcs átmásolása a távoli számítógépre. Ezt megteheted az scp használatával:


A publikus kulcsod helye a távoli számítógépen az alábbi fájlban van:

~/.ssh/authorized_keys2

További publikus kulcsokat lehet csatolni ehhez a fájlhoz, hasonlóan az ~/.ssh/known_hosts fájlhoz. Ez azt jelenti, hogy ha még egy publikus kulcsot szeretnél a fiókodhoz adni ezen a szerveren, át kell másolnod a második id_rsa.pub fájl tartalmát a létező authorized_keys2 fájl egy új sorába.

Biztonsági megfontolások

Ez nem kevésbé biztonságos, mint egy jelszó?

Gyakorlatilag nem igazán. A generált privát kulcs az általad használt számítógépen tárolt, sosincs áthelyezve, még ellenőrzéshez sem. Ez a privát kulcs CSAK ahhoz az EGY publikus kulcssal egyeztethető össze és a kapcsolatot arról a számítógépről kell indítani, ami a privát kulcssal rendelkezik. Az RSA elég biztonságos és 2048 bites hosszúságot használ alapból.

Tulajdonképpen nagyon hasonlít elméletben ahhoz, amikor a jelszavadat használod. Ha valaki tudja a jelszavadat, a biztonságod kirepül az ablakon. Ha valaki rendelkezik a privát kulcs fájloddal, akkor a biztonság bármelyik olyan számítógéppel kapcsolatban elveszett, amelyik rendelkezik a megfelelő publikus kulcssal, de hozzá kell férniük a számítógépedhez, hogy megszerezzék.

Lehet ez még biztonságosabb?

Összeköthetsz egy jelszót a kulcs fájljaiddal. Kövesd a fenti lépéseket, de írj be egy erős jelmondatot. Ezután mikor SSH-n keresztül csatlakozol vagy az SCP-t használod, szükséged lesz a megfelelő privát kulcs fájlra és a megfelelő jelmondatra egyaránt.

Ha egyszer megadtad a jelmondatodat, nem kell újra megadnod, amíg be nem zárod a munkafolyamatot. Ez azt jelenti, hogy amikor először használod az SSH-t/SCP-t, be kell írnod a jelszavad, de minden azutáni művelet nem fogja igényelni. Ha egyszer kijelentkezel a számítógépeden (nem a távolin) vagy bezárod a terminál ablakot, akkor újra be kell írnod. Ezzel a módszerrel nem áldozod fel a biztonságodat, de a jelszavakkal sem leszel állandóan bosszantva.


Lehetséges a publikus/privát kulcspárom újbóli felhasználása?

Ez egy igazán rossz ötlet. Ha valaki kitalálja a jelszavadat és te ugyanazt a jelszót használod az összes fiókodhoz, akkor most az összes ilyen fiókhoz van hozzáfére. Hasonlóképpen a privát kulcsot szintén szupertitkos és fontos. (Bővebb információkért nézd meg a Mit tegyél, miután megszerezték az e-mail jelszavadat című bejegyzést)

A legjobb minden olyan számítógéphez és fiókhoz új kulcspárt létrehozni, amiket össze kívánsz kapcsolni.

Azt is nagyon fontos megjegyezni, hogy minden privát kulcsod ugyanazon a helyen van tárolva: az ~/ssh/-ban a számítógépeden. Használhatsz TrueCrypt-et, hogy létrehozz egy biztonságos, titkosított tárolót, majd hozz létre szimbolikus linkeket az ~/.ssh könyvtáradban. Attól függően, hogy mit csinálok, ezt a szuper paranoid szuperbiztonságos módszert használom, hogy nyugodt legyek.

Használtál SCP-t bármilyen scriptben? Kulcs fájlokat használsz jelszavak helyett? Oszd meg szaktudásodat más olvasókkal a hozzászólásokban!

Felhasznált forrás: How To Remotely Copy Files Over SSH Without Entering Your Password

Hogyan szerezz SSH parancssoros hozzáférést Windows 7-en a Cygwin használatával


Kényelmesen használod a Linuxot/Unixot és szeretnél SSH hozzáférést a Windows 7-es gépedhez?
A Cygwin biztosítja ezt a funkcionalitást és ismerős munkakörnyezetet ad néhány egyszerű lépéssel.

Feltételezzük, hogy feltelepítetted és beállítottad a Cygwint. Ha nem, akkor nézd meg a Hogyan használj Linuxos parancsokat Windowsban Cygwin-nel című cikkünket a kezdéshez.

Az OpenSSH telepítése

Az OpenSSH az, amit használni fogunk, így ha nincs nálad feltelepítve, keresd meg a Cygwin setup.exe fájlját és futtasd.

Megtarthatod ugyanazokat az alapértelmezéseket, amiket a Cygwin első telepítésénél használtál. A csomag kiválasztó képernyőn keres rá az "open"-re és nézd meg a "Net" fül alatt.


Látni fogsz egy "openssh" nevű csomagot. Kattints a "New" oszlop alá, ahol a "Skip" található, addig, amíg meg nem látsz egy megjelenő X-et a "Bin?" oszlopban. Nézd meg az előző képernyőképet, amennyiben össze vagy zavarodva. Kattints a "Next"-re és fejezd be a telepítőt, ahogy legutóbb is csináltad.

Az OpenSSH konfigurálása a Cygwin-ben

A legtöbb Linux disztróval szemben az OpenSSH nem konfigurálja magát és nem fog csak úgy működni. Végre kell hajtanunk néhány egyszerű lépést. Először kattints jobb egérgombbal a Cygwin parancsikonra, majd kattints a "Futtatás rendszergazdaként" lehetőségre.


Ez biztosítja, hogy mindenhez megfelelő kiváltságokkal rendelkezzünk. Egy üres Cygwin ablakot látsz megjelenni.


Írd be az alábbi parancsot:

ssh-host-config


Látni fogod, hogy a script generál néhány alapértelmezett fájlt és utána rákérdez, hogy szeretnéd-e bekapcsolni az "Privilege Separation"-t. Ez alapvetően be van kapcsolva az OpenSSH szokványos telepítéseinél, szóval ha rákérdez, mond igent.


Majd rá fog kérdezni, hogy speciális előjogokkal elátott fiók létrehozására. Válaszd a "yes"-t és a script folytatódni fog.


Ezt követően rákérdez, hogy szeretnéd-e szolgáltatásként futtatni az sshd-t. Ez lehetővé teszi az SSH hozzáférést attól függetlenül, hogy a Cygwin fut-e jelenleg vagy sem, amit el szeretnénk érni. Írd be a "yes"-t a folytatáshoz.

Ezt követően arra kér, hogy adj meg egy értéket a daemonnak. Írd be az alábbit:

ntsec


Látni fogod, hogy a script némi információt ad a rendszereddel kapcsolatban és arra kér, hogy hozz létre egy előjogokkal felruházott fiókot az alapértelmezett "cyg_server" felhasználónévvel. Az alapértelmezett jól működik, így írj be "no"-t, amikor arra kérdez rá, hogy szeretnél-e egy másik fióknevet használni, bár megváltoztathatod, ha nagyon szeretnéd.


Természetesen jelszót is meg kell adnod ehhez a fiókhoz.


A Cygwin megjeleníti a jelszavadat ellenőrzés céljából, így győződj meg róla, hogy biztonságos helyen vagy. Némi extra információt látsz majd felbukkani és ha minden rendben van, kapsz egy üzenetet arról, hogy sikeresen befejeződött.


Újraindíthatod vagy beírhatod az alábbi parancsot az sshd szolgáltatás indításához:

net start sshd


Most már beírhatod az "exit"-et ezen Cygwin példány bezárásához.

Az SSH felhasználói konfigurálása

Ezt követően létrehozzunk a megfelelő SSH kulcsokat a felhasználói fiókodhoz. Nyisd meg a Cygwin-t a szokásos módon és írd be az alábbi parancsot:

ssh-user-config


A felhasználói fiókodhoz tartozó egyedi kulcsok elkészítésére fog kérni, így használd azt, amire szükséged van. Én "no"-t mondtam az első kérdésre és "yes"-t a másodikra.


Az SSH2 biztonságosabb, így azt javaslom számodra. Egy jelszó beírása után rákérdez, hogy szeretnéd-e használni azt az azonosságot a gépedhez való hozzáféréshez. Írd be a "Yes"-t.


Majd rákérdez SSH2 DSA ID fájl létrehozására, amennyiben jelszómentes hozzáférést szeretnél. Ezt a lépést én visszautasítottam.


Ennyi! Minden konfigurálva van. Ha nagyon gyorsan szeretnéd tesztelni a konfigurációdat, írd be az alábbi parancsot a Cygwin ablakodba:

ssh –v localhost


A -v opció "bőbeszédű"-t jelent és a folyamat minden részletét megadja számodra. Rákérdez, hogy szeretnéd-e folytatni a kapcsolódást, így írj "yes"-t és utána írd be a jelszavadat a készenléti jelnél.
Emlékezz arra, hogy amikor beírod a felhasználónevedet, az kisbetű-nagybetű érzékeny!


Ha minden jól ment, egy rendes bash készenléti jelet fogsz látni.

Kisebb gondok

Ha megakadsz bármelyik konfigurációs lépésnél, bizonyosodj meg róla, hogy a Windows felhasználói fiók, amit jelenleg használsz, rendelkezik rendszergazdai hozzáféréssel. Furcsa hibákat kaphatsz, ha a hoszt konfigurálást sima felhasználóként próbálod meg elindítani, így bizonyosodj meg róla, hogy a Cygwin rendszergazdai jogosultságokkal fut ennél a lépésnél. Ha kilépésnél kapsz egy kérdést a futó munkameneted félbeszakításáról, írd be a "no"-t a bezárásukhoz.

Végül, ha SSH hozzáférést tesztelsz egy másik gépről és kapsz egy hibát, bizonyosodj meg róla, hogy a tűzfal nem blokkolja a hozzáférést a 23-as porthoz (vagy a 23-ashoz, ha SFTP-t használsz).

Ez különösen jól működik, ha szerezed a Windows 7-es gépeden lévő fájlok való SSH/SFTP hozzáférés képességét és szeretnél egy ismerős shellt, amivel ezt megteheted. A Cygwin a Windows meghajtókat a "/cygdrive/meghajtóbetűjel"-hez csatolja fel, abban az esetben, ha tűnődnél rajta. ;-)

Felhasznált forrás: How To Get Command-Line Access to Windows 7 Using Cygwin