SSH – це набір програм, які дозволяють виконати вхід на віддалену машину для виконання команд на ній. Він призначений для забезпечення захищеного зашифрованого зв’язку між двома вузлами через незахищену мережу. З’єднання X11, довільні порти TCP і сокети домену UNIX також можуть бути переадресовані захищеним каналом. У SSH входять програми, які додатково дозволяють передавати файли із зашифрованого з’єднання. SSH несе в собі різні покращення безпеки, серед них автентифікація користувача/хоста, шифрування даних та цілісність даних, завдяки чому неможливі популярні атаки на кшталт підслуховування (сніфінгу), DNS/IP спуфінгу, підробка даних (data forgery), перехоплення з’єднання (connection hijacking) і т. д. Користувачам ftp, telnet або rlogin, які використовують протокол, що передає дані у вигляді відкритого тексту, рекомендується переключитися на SSH. Підтримка SSH реалізована у всіх UNIX системах, і на більшості з них в числі стандартних утиліт присутні клієнт і сервер ssh. SSH-клієнт може знадобиться для роботи з файлами сайту, для їх перегляду і редагування, роботи з базами даних.
Існує низка реалізацій SSH-клієнтів і для не-UNIX ОС. Велику популярність протокол отримав після широкого розвитку сніферів, як альтернативне небезпечному телнету рішення для управління важливими вузлами. Протокол SSH розроблений на комерційній основі, також є і безкоштовний варіант OpenSSH, який особливо популярний серед веб-розробників. OpenSSH — це реалізація з відкритим кодом протоколу SSH, що дозволяє шифрувати з’єднання в мережі за допомогою набору програм. Якщо ви хочете мати SSH на Linux, ви можете встановити OpenSSH, який складається з сервера OpenSSH і клієнтських пакетів. Технологія працює за принципом сервер-клієнт. Тобто, на віддаленій машині, на якій ви хочете виконувати команди, потрібно запустити сервер OpenSSH. До цього сервера можна підключатись за допомогою клієнтів OpenSSH. На одному комп’ютері можуть бути встановлені і сервер, і клієнт. Їх запуск та налаштування виконуються незалежно один від одного.
Отже, на сервері основної уваги вимагає sshd, а програма sftp-server буде запущена автоматично за необхідності.
Це основні програми, які можуть знадобитися більшості користувачів для створення ключів, підключення до віддаленої машини та копіювання файлів.
Для деяких конфігурацій служба OpenSSH встановлена та включена за промовчанням. Як правило, це відноситься до систем, до яких важко отримати доступ іншим способом, крім SSH. Наприклад, на хостингах VPS (віртуальних приватних серверів) системи, що встановлюються, практично завжди навіть у мінімальній конфігурації вже мають встановлену і запущену службу SSH, тому після розгортання нового сервера, клієнту достатньо підключитися використовуючи надіслані облікові дані. В образах для ARM комп’ютерів, які часто не мають дисплея, зазвичай служба OpenSSH вже встановлена і запущена.
У Debain та похідних (Kali Linux, Linux Mint, Ubuntu), програми OpenSSH можна встановити окремо, наприклад, є пакети для клієнта та для сервера openssh-client та openssh-server.
Або можна встановити метапакет ssh, який містить клієнтську, і серверну частину:
Для встановлення OpenSSH в Arch Linux виконайте:
В інших дистрибутивах Linux пошукайте пакет openssh або ssh.
Клієнт ssh запускається самим користувачем у міру потреби. Запуск служби OpenSSH потрібно лише на сервері.
Таким чином, якщо ви хочете скористатися першою моделлю (демон SSH завжди активний), для запуску служби та додавання її в автозавантаження наберіть наступні команди: Вони додадуть демона SSH в автозавантаження і запустять його прямо зараз.
Зверніть увагу, що в різних дистрибутивах служба може називатися ssh або sshd, отже, у наведених вище і далі командах, використовуйте імена:
sshd.socket
sshd.service
ssh.socket
ssh.service
запуску та зупинки цієї служби
події, пов’язані з підключенням користувачів
Переглянути логи SSH можна різними способами, один з варіантів (пам’ятайте, що в деяких системах служба називається ssh.service, без букви d):
Наприклад, для виведення останніх 100 записів:
Також можна переглянути події SSH за допомогою:
Універсальна команда незалежно від імені служби:
Якщо налаштовано вхід по публічному ключу, але не відключено можливість входу по паролю, то після невірного ключа – можливість увійти з паролем.
При невдалій спробі входу через неправильний ключ, при рівні вербальності (LogLevel) за замовчуванням (INFO) спеціальні повідомлення не записуються в журнал. Подібні невдалі спроби можна знайти за записом «Connection closed by authenticating user», але це означає відключення на етапі аутентифікації, незалежно від способу аутентифікації — паролем чи ключом. Якщо встановити рівень вербальності на VERBOSE, то в журналі можна буде знайти записи про невдалі спроби входу за допомогою публічного ключа наступною командою: