Какво е SSH и как работи?

SSH е защитен мрежов протокол за достъп до отдалечени компютри в мрежа.

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

Но те не са защитени, т.е. всеки в средата на мрежата може да прихване и прочете данните, които се прехвърлят. В средата на 90-те години беше въведен по-сигурен протокол, наречен ssh, като надежден наследник на протокола telnet.

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

Какво е SSH?

SSH или Secure Shell или Secure Socket Shell е мрежов протокол, който ни помага да осъществяваме сигурен достъп и да комуникираме с отдалечени машини (най-вече отдалечени сървъри).

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

Нужда от SSH

SSH е създаден през 1995 г. за решаване на проблеми със сигурността, пред които са изправени незащитени протоколи за отдалечен достъп като rlogin, rsh, Telnet.

Сега нека поговорим за Telnet, което означава Teletype Network, разработена през 1969 г. Това е прост инструмент от командния ред, който работи на вашия компютър за достъп до отдалечен сървър (където и да е по света). И изпращайте команди, които да бъдат изпълнени на този сървър, точно както ако седите точно пред отдалечения сървър (дори на мили от сървъра). Telnet предава и получава съобщения в обикновен текст по мрежа.

  Как да изключите или персонализирате известията на Xbox One

Командите, които бихте изпълнили, могат да бъдат стартиране на програми, създаване на директории, създаване/изтриване/прехвърляне на файлове, стартиране/спиране на услуги и т.н.

Проблемът при свързването на друга машина в мрежа е, че предаваните данни ще преминат през много мрежи. Междувременно, някои от които може да са несигурни и предаващите данни могат да бъдат прихванати, евентуално модифицирани, преди да достигнат целевата машина.

В първите дни, когато сигурността не беше толкова важна, цялата комуникация се осъществяваше в обикновен текст. Следователно данните, предавани по интернет между клиент и сървър, могат лесно да бъдат прихванати. И може да се чете, тъй като съобщенията не са криптирани.

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

Как работи?

SSH използва архитектура клиент-сървър за защитена комуникация по мрежата чрез свързване на ssh клиент със ssh сървъра. По подразбиране ssh сървърът слуша стандартния TCP порт 22 (можете да промените това за по-добра сигурност).

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

  Как да промените кернинг в Microsoft Word

Linux е широко използваната операционна система за отдалечени сървъри поради своята сигурност и издръжливост. Много сървъри, които използват операционна система Linux в интернет, работят от години без много повреди или дори да бъдат рестартирани.

Повечето SSH сесии (период, в който имаме достъп до отдалечения сървър) ще имат само следните две операции:

  • Удостоверяване
  • Изпълнение на команда

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

И двата популярни начина са:

Базираното на парола удостоверяване е методът по подразбиране, използван за удостоверяване за OpenSSH инсталирани клиенти. Това е най-основното ssh удостоверяване, но не и най-сигурното.

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

Базираното на ключ удостоверяване подобрява още повече сигурността на системата чрез генериране на SSH двойки ключове, което се оказва надеждна и сигурна алтернатива.

След като сървърът удостовери клиента успешно, между тях се установява защитена връзка.

Достъп до отдалечен сървър чрез SSH

Ако сте потребител на Mac/Linux, можете директно да използвате терминала, за да въвеждате и изпълнявате ssh команди, тъй като OpenSSH вече е инсталиран по подразбиране.

Ако сте потребител на Windows, трябва да инсталирате един клиент за терминален емулатор на трета страна, за да изпълнявате ssh команди. PuTTY е най-популярният ssh клиент за операционна система Windows.

За да се свържете с отдалечен сървър чрез SSH, трябва да знаете поне две неща.

Синтаксисът за основната ssh команда е:

$ ssh <user-name> @ <host> -p <port-no>

Потребителското име е потребителското име на отдалечената машина, която се опитваме да свържем (а не потребителят на вашата локална машина), а хостът е или IP адрес, или име на домейн.

  Как да премахнете имейл акаунти от приложението Mail на iPhone и iPad

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

Сега нека се свържем с бандит предизвикателство с помощта на ssh. Това е едно от наличните предизвикателства на уебсайта, което учи как да влезете с помощта на SSH.

Акредитивни писма:

потребителско име и парола: bandit0
хост и порт: bandit.labs.overthewire.org, 2220

Когато въведете следната команда и натиснете enter:

$ ssh [email protected] -p 2220

Той ще ви подкани да въведете паролата за целите на удостоверяването. Сега въведете паролата и натиснете Enter:

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

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

Когато искате да прекратите ssh сесията, въведете команда за изход:

$ exit

Ще получите съобщение „Връзката е затворена“, когато успешно излезете от ssh сесията.

Заключение

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

Повечето хора приемат, че използването на ssh е сложно и придобиването на знания за това как работи не е лесно разбираемо, но е по-просто, отколкото си мислите. Вече имате основно разбиране за SSH, как работи, аспектите на сигурността зад него и защо играе жизненоважна роля в комуникацията.

След това проучете някои от ресурсите, за да станете Sysadmin.