SSH, повече от сигурна обвивка

SSH (защитена обвивка) е протокол, който ни помага сигурен достъп до отдалечени компютри, основно както Telnet, но използвайки алгоритми за криптиране, които ни помагат да поддържаме сигурността на връзката си, особено ако искаме да осъществим достъп до компютри, които изпълняват някои важни функции в рамките на организацията.

Като цяло, за достъп трябва да предоставим нашето потребителско име и адреса на компютъра, така че SSH сървърът да ни поиска паролата за достъп:

ssh usuario@equiporemoto

От момента, в който клиентът инициира първата връзка между отдалечения компютър и нас, информацията вече пътува безопасно, предотвратявайки някой да получи нашите идентификационни данни за достъп до споменатия компютър, но SSH е много приспособим протокол, който ни предлага много възможности.

SCP

Първият от тях е да можете да прехвърляте файлове между клиента и отдалечения компютър, без да е необходимо да монтирате FTP или NFS сървър, просто използвайки SCP (Secure CoPy), който повечето SSH сървъри изпълняват:

scp archivo.tar.gz usuario@equiporemoto:/home/usuario
scp usuario@equiporemoto:/var/log/messages messages.txt

SSH тунелиране

Тази функция е много полезна, тъй като ни позволява да изпращаме и получаваме информация, която не е непременно командна обвивка между клиента и отдалечения компютър, например обикновено сърфиране. Ако не познаете каква полза може да има това, помислете за следното: трябва да осъществите достъп до страница, но на мястото, където се намирате, е приложена защитна стена, която блокира точно тази страница, следователно можем да направим „тунелиране“ с отдалечен компютър, който няма споменатите блокове и разглеждането на споменатата страница през нашата SSH сесия:

ssh -D 8888 usuario@equiporemoto

Веднъж свързан, нашият SSH клиент „слуша“ на порт 8888 като прокси сървър, така че да можем да конфигурираме браузъра си и целият трафик да се предава през SSH сесията

SSH тунел

Друг пример, който ми се случва, е, че поради някакво географско ограничение не можем да осъществим достъп до уеб услуга от мястото, където се намираме, когато правим тунела, каза, че уеб услугата открива IP на нашия отдалечен сървър като източник, а не на клиента ни. Това е донякъде еквивалентно на VPN (виртуална частна мрежа)

Обратен SSH

Ако по някаква причина се нуждаем от достъп до компютър, който е зад защитна стена и той не ни позволява да пренасочваме SSH трафик към него, можем да направим „обратен SSH“, по такъв начин, че този компютър да се свърже с друг SSH сървър, на с които също можем да се свържем, за да получим достъп до оборудването зад защитната стена. Пример, който ни идва наум, е когато искаме да помогнем на приятел, който няма представа как да конфигурира пренасочване на модема си, но трябва да имаме достъп до компютъра му отдалечено:

Приятел -> Модем -> SSH сървър <- За нас

Стъпките, които трябва да следвате, са относително много прости:

Приятел
ssh -R 9999:localhost:22 usuario@servidorssh

нас
ssh usuario@servidorssh
След като влезем в SSH сървъра, можем да се свържем с екипа на нашия приятел, използвайки
ssh amigo@localhost -p 9999

Както можете да видите, цялата магия се крие в параметъра -R, който казва на междинния сървър, че на порт 9999 компютърът на нашия приятел слуша сега като сървър.

Това са само някои възможности, които ни предлага SSH, но ви каня да експериментирате с някои други, например; можем да правим скриптове без надзор, използвайки RSA ключове, да пренасочваме X сесии (графичен режим) към нашата графична среда, само за да споменем няколко.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Astro каза той

    Отлична статия, нетърпелив съм да се прибера вкъщи и да започна да ги практикувам.

    1.    adr14n каза той

      Благодаря много! Това всъщност е първата ми публикация в блога и е много приятно да прочета тези коментари. Наздраве!

  2.   Пабло кардозо каза той

    Точно вчера питах нещо по тази тема и то е следното.

    Има ли начин да можете да scp цяла папка, но като се вземе предвид датата на файловете? С други думи, имам папка с много файлове, които съм изтеглил преди малко, интересувам се да изтегля само това, което е качено в тази папка от определена дата.

    Поздрави и много благодаря предварително.

    1.    елав каза той

      Можете да го направите с RSYNC през SSH. 😉

      1.    Гискард каза той

        rsync е капакът на буркана !!! 😀

      2.    Едуардо каза той

        Препоръчвам ви да опитате унисон, той е СПЕКТУАЛЕН, наличен е в репозиториите (поне debian и ubuntu)

        http://www.cis.upenn.edu/~bcpierce/unison/

        Използвам го, за да правя ежедневни архиви на бележката си на друг компютър, в допълнение към синхронизирани директории на различни компютри.

        Много е лесен за използване

        Надявам се да ви е полезно!

        EXITOS
        Едуардо

    2.    Левичар каза той

      Това изглежда по-скоро задача като за rsync, но не знам дали има параметър, който да го направи конкретно, ако не, може би ще трябва да се обработва от скрипт

    3.    adr14n каза той

      Това, за което се сещам, е да направя ls, подреден по дата, и оттам да копирам тези, от които се нуждаете, с обикновен scp, защото scp няма толкова функции, колкото се казва, той има rsync.

  3.   анонимен каза той

    Аз потвърждавам, че обратното ssh е луксозно, използвал съм го между моя компютър и друг, който е бил на повече от 700 км разстояние и нулеви проблеми.
    Благодаря ви за тези статии, те са много ценни.

  4.   прекрати каза той

    Толкова солено! Хаха, не знаех, че ssh има толкова много възможности, вече искам да науча как да настроя ssh сървър и да експериментирам с неговите възможности, само едно нещо, бихте ли обяснили какво прави всеки параметър?

    1.    adr14n каза той

      Според самия ssh man -D служи за локално определяне на „динамичен спедитор на приложения“, който, както обясних в статията, служи за преминаване на трафик през тунел в рамките на същата SSH сесия. -R указва отдалечения порт, който ще бъде пренасочен към нашия локален компютър чрез „препращане“. И накрая -p указва към кой порт клиентът трябва да се свърже, когато не използва стандартния порт: 22

  5.   manuelmdn каза той

    Добре, че засяга тази тема, имам въпрос относно ssh ключовете, можете ли да генерирате повече от един ключ за различни услуги? Надявам се, че те са публикували публикация за управление на ssh ключовете, знам, че в google има отговорът., Но надявам се вие те ще говорят за това,

    Поздрави!

    1.    adr14n каза той

      Когато използвате удостоверяване чрез SSL ключове, можете да експортирате едни и същи (на вашия компютър) в различни услуги и по същия начин, ако вашият компютър е сървърът, можете да включите различни ключове от различни компютри. Не знам дали съм отговорил на въпроса ви, но го разбрах. Наздраве

  6.   Луис каза той

    Мисля, че си спомням, че имаше начин през ssh, който ни позволи да стартираме приложение отдалечено и да го разглеждаме на нашия компютър, сякаш е локално приложение.

    Например, бихме могли да стартираме firefox, виждаме и контролираме на нашия локален компютър, но процесът се изпълнява на отдалечения компютър.

    Особено полезно на компютри с малко ресурси, но за съжаление не контролирам проблема и не знам как да конфигурирам компютрите да правят това.

    Някой знае ли нещо по темата?

    1.    Персонал каза той

      За нещо подобно би било удобно да използвате VNC и можете да тунелирате със SSH.

      1.    x11tete11x каза той

        @Staff за мен не би било удобно да използвам VNC .. с VNC, ако не съм лош ти донесе целия работен плот ..

        @Luis, това, което правите, се прави просто чрез добавяне на параметъра "-X" към ssh (трябва да разрешите X препращане на вашия сървър)

        http://i.imgur.com/NCpfzBL.jpg

      2.    Персонал каза той

        @ x11tete11x
        Имайки предвид споменатото от Луис, помислих да му предложа друга алтернатива, тъй като:

        1. "Особено полезно на компютри с малко ресурси ..."

        -В случай на едно приложение, то може да не консумира толкова много ресурси, но опитите за отваряне на 10 прозореца с x пренасочване продължават да правят системата по-трудна, отколкото да има един VNC екземпляр, тъй като VNC не "довежда целия работен плот"
        -Когато затваряте програмата на клиента, тя завършва по същия начин на сървъра (Някой да ме поправи, ако греша), докато с VNC можете например да оставите цялата нощ да изтеглите торент и да влезете отново сутрин и всичко ще продължи точно както си бях тръгнал.
        -VNC е системен агностичен протокол, можете да получите достъп до него от клиент на Win, Andorid, Mac OSX и т.н. и използвайте вашите GNU / Linux програми, без да се налага да инсталирате нищо друго освен самия VNC клиент.

        И 2. «... за съжаление не контролирам проблема и не знам как да конфигурирам компютрите да правят това.»

        Много по-лесно е (и без риск да въведете нещо погрешно и да рестартирате без десктоп) да инсталирате VNC и да конфигурирате SSH тунела (Това се прави с GUI), отколкото да преместите X конфигурационните файлове.

      3.    Луис каза той

        Благодаря и на двамата за вашите коментари.

        Отдавна използвам SSH заедно с SHFS за достъп до отдалечено съдържание на моя малък сървър, но никога не съм успявал да стартирам отдалечени приложения в графична среда.

        Ще пробвам и двете опции, за да видя как работи. Това, което казвах отначало, изглежда по-просто, тъй като според x11tete11x трябва да добавите само един параметър.

        Тогава ще видя дали мога да намеря лесен начин за конфигуриране на VNC, тъй като съм малко ръка, аз съм потребител на Arch, така че със сигурност ще има информация в wiki, друго нещо е, че откривам. Хехехе

        За поздрав.

    2.    adr14n каза той

      Това може да се направи чрез предаване на параметъра -X на сесията, но трябва да имате X сървър конфигуриран да приема връзки от компютър в мрежата, мисля, че е конфигуриран с помощната програма xhost. Както споменава Персоналът, VNC също е много добър вариант

    3.    Марио каза той

      Това е препращане на X11, тук на същия този сайт има публикация за това:
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    Луис каза той

      Благодаря за информацията приятели.

      Казах, че ще го направя, като използвам и двата варианта, за да видя кой ми подхожда по-добре.

      Поздрави!