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 сесията
Друг пример, който ми се случва, е, че поради някакво географско ограничение не можем да осъществим достъп до уеб услуга от мястото, където се намираме, когато правим тунела, каза, че уеб услугата открива 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 сесии (графичен режим) към нашата графична среда, само за да споменем няколко.
Отлична статия, нетърпелив съм да се прибера вкъщи и да започна да ги практикувам.
Благодаря много! Това всъщност е първата ми публикация в блога и е много приятно да прочета тези коментари. Наздраве!
Точно вчера питах нещо по тази тема и то е следното.
Има ли начин да можете да scp цяла папка, но като се вземе предвид датата на файловете? С други думи, имам папка с много файлове, които съм изтеглил преди малко, интересувам се да изтегля само това, което е качено в тази папка от определена дата.
Поздрави и много благодаря предварително.
Можете да го направите с RSYNC през SSH. 😉
rsync е капакът на буркана !!! 😀
Препоръчвам ви да опитате унисон, той е СПЕКТУАЛЕН, наличен е в репозиториите (поне debian и ubuntu)
http://www.cis.upenn.edu/~bcpierce/unison/
Използвам го, за да правя ежедневни архиви на бележката си на друг компютър, в допълнение към синхронизирани директории на различни компютри.
Много е лесен за използване
Надявам се да ви е полезно!
EXITOS
Едуардо
Това изглежда по-скоро задача като за rsync, но не знам дали има параметър, който да го направи конкретно, ако не, може би ще трябва да се обработва от скрипт
Това, за което се сещам, е да направя ls, подреден по дата, и оттам да копирам тези, от които се нуждаете, с обикновен scp, защото scp няма толкова функции, колкото се казва, той има rsync.
Аз потвърждавам, че обратното ssh е луксозно, използвал съм го между моя компютър и друг, който е бил на повече от 700 км разстояние и нулеви проблеми.
Благодаря ви за тези статии, те са много ценни.
Толкова солено! Хаха, не знаех, че ssh има толкова много възможности, вече искам да науча как да настроя ssh сървър и да експериментирам с неговите възможности, само едно нещо, бихте ли обяснили какво прави всеки параметър?
Според самия ssh man -D служи за локално определяне на „динамичен спедитор на приложения“, който, както обясних в статията, служи за преминаване на трафик през тунел в рамките на същата SSH сесия. -R указва отдалечения порт, който ще бъде пренасочен към нашия локален компютър чрез „препращане“. И накрая -p указва към кой порт клиентът трябва да се свърже, когато не използва стандартния порт: 22
Добре, че засяга тази тема, имам въпрос относно ssh ключовете, можете ли да генерирате повече от един ключ за различни услуги? Надявам се, че те са публикували публикация за управление на ssh ключовете, знам, че в google има отговорът., Но надявам се вие те ще говорят за това,
Поздрави!
Когато използвате удостоверяване чрез SSL ключове, можете да експортирате едни и същи (на вашия компютър) в различни услуги и по същия начин, ако вашият компютър е сървърът, можете да включите различни ключове от различни компютри. Не знам дали съм отговорил на въпроса ви, но го разбрах. Наздраве
Мисля, че си спомням, че имаше начин през ssh, който ни позволи да стартираме приложение отдалечено и да го разглеждаме на нашия компютър, сякаш е локално приложение.
Например, бихме могли да стартираме firefox, виждаме и контролираме на нашия локален компютър, но процесът се изпълнява на отдалечения компютър.
Особено полезно на компютри с малко ресурси, но за съжаление не контролирам проблема и не знам как да конфигурирам компютрите да правят това.
Някой знае ли нещо по темата?
За нещо подобно би било удобно да използвате VNC и можете да тунелирате със SSH.
@Staff за мен не би било удобно да използвам VNC .. с VNC, ако не съм лош ти донесе целия работен плот ..
@Luis, това, което правите, се прави просто чрез добавяне на параметъра "-X" към ssh (трябва да разрешите X препращане на вашия сървър)
http://i.imgur.com/NCpfzBL.jpg
@ x11tete11x
Имайки предвид споменатото от Луис, помислих да му предложа друга алтернатива, тъй като:
1. "Особено полезно на компютри с малко ресурси ..."
-В случай на едно приложение, то може да не консумира толкова много ресурси, но опитите за отваряне на 10 прозореца с x пренасочване продължават да правят системата по-трудна, отколкото да има един VNC екземпляр, тъй като VNC не "довежда целия работен плот"
-Когато затваряте програмата на клиента, тя завършва по същия начин на сървъра (Някой да ме поправи, ако греша), докато с VNC можете например да оставите цялата нощ да изтеглите торент и да влезете отново сутрин и всичко ще продължи точно както си бях тръгнал.
-VNC е системен агностичен протокол, можете да получите достъп до него от клиент на Win, Andorid, Mac OSX и т.н. и използвайте вашите GNU / Linux програми, без да се налага да инсталирате нищо друго освен самия VNC клиент.
И 2. «... за съжаление не контролирам проблема и не знам как да конфигурирам компютрите да правят това.»
Много по-лесно е (и без риск да въведете нещо погрешно и да рестартирате без десктоп) да инсталирате VNC и да конфигурирате SSH тунела (Това се прави с GUI), отколкото да преместите X конфигурационните файлове.
Благодаря и на двамата за вашите коментари.
Отдавна използвам SSH заедно с SHFS за достъп до отдалечено съдържание на моя малък сървър, но никога не съм успявал да стартирам отдалечени приложения в графична среда.
Ще пробвам и двете опции, за да видя как работи. Това, което казвах отначало, изглежда по-просто, тъй като според x11tete11x трябва да добавите само един параметър.
Тогава ще видя дали мога да намеря лесен начин за конфигуриране на VNC, тъй като съм малко ръка, аз съм потребител на Arch, така че със сигурност ще има информация в wiki, друго нещо е, че откривам. Хехехе
За поздрав.
Това може да се направи чрез предаване на параметъра -X на сесията, но трябва да имате X сървър конфигуриран да приема връзки от компютър в мрежата, мисля, че е конфигуриран с помощната програма xhost. Както споменава Персоналът, VNC също е много добър вариант
Това е препращане на X11, тук на същия този сайт има публикация за това:
https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/
Благодаря за информацията приятели.
Казах, че ще го направя, като използвам и двата варианта, за да видя кой ми подхожда по-добре.
Поздрави!