Що таке 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 передає та отримує повідомлення у вигляді звичайного тексту через мережу.

  Ваші фотографії зі смартфона розмиті? Ось чому

Команди, які ви виконуєте, можуть полягати в запуску програм, створенні каталогів, створенні/видаленні/передачі файлів, запуску/зупинці служб тощо.

Проблема з підключенням іншої машини до мережі полягає в тому, що дані, що передаються, проходитимуть через багато мереж. Тим часом деякі з них можуть бути небезпечними, і дані, що передаються, можуть бути перехоплені, можливо, змінені до того, як вони досягнуть цільової машини.

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

Таким чином, протоколи відкритого тексту є надзвичайно небезпечними, і їх ніколи не можна використовувати для передачі конфіденційних даних, таких як паролі, секрети тощо. Тому SSH вважається безпечною альтернативою застарілим мережевим протоколам віддаленого доступу.

Як це працює?

SSH використовує архітектуру клієнт-сервер для захищеного зв’язку через мережу шляхом підключення клієнта ssh до сервера ssh. За замовчуванням сервер ssh слухає стандартний порт TCP 22 (це можна змінити для кращої безпеки).

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

  4 платформи для наймання найкращих послуг аерографії

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-адреса або ім’я домену.

  Вступний посібник і практичний приклад Google Cloud

Давайте розглянемо приклад підключення до віддаленого сервера за допомогою OverTheWire веб-сайт. Це безкоштовний веб-сайт із військовими змаганнями.

Тепер давайте підключимося до бандит виклик за допомогою ssh. Це одне з доступних завдань на веб-сайті, яке навчає входу за допомогою SSH.

облікові дані:

ім’я користувача та пароль: bandit0
хост і порт: bandit.labs.overthewire.org, 2220

Коли ви вводите наступну команду та натискаєте enter:

$ ssh [email protected] -p 2220

Вам буде запропоновано ввести пароль для автентифікації. Тепер введіть пароль і натисніть enter:

Якщо введений пароль правильний, ви успішно ввійшли на віддалений сервер, і ваш термінал виглядатиме як на зображенні вище.

Тепер ви можете використовувати термінал віддаленого комп’ютера, щоб вводити та виконувати свої команди та виконувати необхідні операції.

Якщо ви хочете завершити сеанс ssh, введіть команду виходу:

$ exit

Після успішного виходу з сеансу ssh ви отримаєте повідомлення «З’єднання закрито».

Висновок

Основною причиною популярності SSH є те, що весь зв’язок між сервером і клієнтом зашифрований.

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

Далі ознайомтеся з деякими ресурсами, щоб стати системним адміністратором.