Керування ключами SSH на macOS: повний довідник
SSH або Secure Shell - це спеціальний захищений протокол, який допомагає адміністраторам безпечно підключатися до віддалених пристроїв. Протокол функціонує завдяки певним утилітам та криптографічному мережевому протоколу. Для шифрування віддаленого з'єднання всередині системи використовуються ключі SSH, які складаються з приватної та публічної пар ключів. Таким чином створюється аутентифікація між віддаленим пристроєм і користувачем.
SSH-ключі дуже корисні в багатьох ситуаціях, коли необхідно використовувати захищену мережу. Крім надання безпечних віддалених з'єднань, SSH також забезпечує надійне шифрування даних під час передачі файлів або навіть при управлінні компонентами інфраструктури.
Говорячи про функціонування процесу, можна виділити 3 важливі рівні, через які проходить кожне SSH-з'єднання:
- Транспортний. Цей рівень гарантує безпечне з'єднання між SSH-сервером і клієнтом.
- Аутентифікація. Функціонує шляхом надсилання користувачеві певного методу аутентифікації.
- З'єднання. Після завершення успішної аутентифікації цей рівень керує з'єднанням між сервером і клієнтом.
Щоб отримати належне з'єднання з SSH-сервером, спочатку клієнт повинен відправити запит на сервер. Шифрування починається одразу після того, як сервер отримує цей запит. Після цього користувач отримує від сервера відкритий ключ, який використовується для перевірки автентичності сервера. Останнім кроком перед фактичним входом на сервер є узгодження параметрів і створення захищеного каналу.
Тепер давайте зануримося в більш практичні рекомендації щодо створення ключів, налаштування дозволів тощо.
Створення ключів SSH на macOS
В системі Mac, SSH за замовчуванням вимкнено, тому давайте розглянемо весь процес. Почніть з відкриття терміналу. Ви можете знайти його в утилітах і після того, як знайдете, увімкніть SSH наступною командою:
sudo systemsetup -setremotelogin on
Після введення цього рядка потрібно ввести пароль. Як бачите, процес дуже простий і не вимагає багато кроків. В MacOS цей протокол називається Remote login.
Після того, як ви увімкнули протокол, можна переходити до створення SSH-ключів. Введіть наступну команду:
ssh-keygen
Далі необхідно вказати ключ, який ви створюєте. Можливими значеннями типу ключа можуть бути dsa, rsa1 або rsa. Найпоширенішим є rsa, тому давайте створимо його:
ssh-keygen -t rsa
Після цього вас запитають, куди ви хочете його зберегти, і натиснувши enter, ви обираєте місце за замовчуванням. Наступним кроком буде генерація пароля. Таким чином, ключ буде збережено у вибраному місці.
Знаходження прихованого каталогу .ssh
Після того, як ви зберегли ключ у певній теці, ви можете захотіти отримати доступ до цього каталогу. Крапка перед SSH вказує на те, що він прихований. Існує 2 варіанти, як відкрити файли. Перший - за допомогою терміналу. Введіть наступну команду:
defaults write com.apple.finder AppleShowAllFiles YES
killall Finder
Другий спосіб - використання додаткового софту. Ви можете вибрати Funter або будь-яку іншу. Якщо ви все зробили правильно, ви знайдете цей прихований каталог.
Генерація ключів SSH на Windows
Користувачам Windows слід перевірити, чи встановлено OpenSSH. Якщо так, відкрийте командний рядок і запустіть його від імені адміністратора.
Щоб згенерувати SSH-ключ, скористайтеся наступною командою:
ssh-keygen
Як і у випадку з MacOS, після натискання Enter ключ буде збережено за замовчуванням. Якщо ви хочете зберегти його в певну папку, вкажіть її. Потім введіть пароль, і система згенерує ключ.
Публічний ключ зазвичай має в кінці .pub, в той час як приватний виглядає як - id_rsa. Щоб переглянути вміст обох ключів, ви можете скористатися блокнотом.
Інтеграція SSH-ключа з локальною машиною
Тепер ви знаєте основні варіанти генерації SSH-ключів, тому давайте обговоримо ще один хороший варіант. Створення ключа в cPanel веб-хостингу включає наступні кроки:
- На вашій MAC-системі почніть зі створення документа з назвою "id_dsa".
- Увійдіть в cPanel і створіть ключі
- Скопіюйте та вставте створений ключ у файл "id_dsa"
- Увійдіть в термінал і введіть наступну команду:
ssh-add id_dsa
- Потім виконайте NAME@HOST-p18765 (де замість NAME введіть ваше ім'я користувача, а HOST слід замінити на IP-адресу сервера)
Коли ключ буде успішно згенеровано, додайте його на локальну машину наступною командою:
ssh-add name_of_keyf
Замість keyf слід вказати ім'я файлу, в якому знаходиться згенерований ключ. Не забудьте додати крапку перед ім'ям файлу, якщо він прихований.
Тепер ми завершили процес, і наш комп'ютер розпізнає ключ, наданий хостером. Наступна проблема полягає в тому, що операційна система сприймає цей конкретний файл як незахищений.
Налаштування права доступу до Keyfile
Щоб змінити права доступу до keyfile, ви можете скористатися кількома варіантами:
- Почніть зі звичайної зміни дозволу, як і для інших ваших файлів. Однак, можуть виникнути певні проблеми, які завадять вам зробити це просто. Якщо це не спрацювало, спробуйте наступний спосіб.
- Додайте файл keyfile до каталогу.shh. Як бачите, там є крапка, тому тека буде прихованою і більш захищеною. Якщо це не спрацює, тоді у нас є 3-й варіант.
- Налаштуйте права доступу до каталогу .ssh.
Для зміни дозволу файлу з SSH-ключем потрібно виконати наступну команду:
sudo chmod <span class="hljs-number">600</span> /path/to/my/key.pem
Окрім зміненого рядка прав доступу, вам також потрібно буде ввести пароль до комп'ютера та пароль для SSH-ключа. Наступним кроком буде підключення до сервера. Для цього вам потрібно завантажити git-репозиторії.
Завантаження Git-репозиторію веб-сайту
Користувачеві слід почати з панелі cPanel, а потім перейти до меню SG-GIT, де було налаштовано репозиторій. Звідси можна буде скопіювати git-клон. Просто набравши цю команду в терміналі, репозиторій буде скопійовано на локальний пристрій. Починаючи з цього моменту, можна додати сховище до GIT-програми, наприклад, GitTower.
Підсумок
Як ми вже обговорювали, SSH - це мережевий протокол, який застосовується для забезпечення зашифрованого і повністю безпечного з'єднання між двома машинами. У цій статті ми надали багато корисної інформації про ввімкнення SSH, генерацію SSH-ключів на системах Windows і Mac, пошук прихованих каталогів, інтеграцію SSH-ключа, налаштування дозволів ключового файлу тощо.
Загалом, використання SSH-ключів вважається більш зручним, безпечним і надійним методом доступу до віддалених систем у порівнянні зі стандартним підходом з використанням облікових даних. Використання SSH-ключів - чудовий варіант для всіх користувачів, які шукають хмарну безпеку, тунелювання, зручну автентифікацію, безпечний протокол та безпечне керування віддаленими пристроями. Звичайно, як і в інших методах, тут є свої недоліки, але переваг однозначно більше. Ось чому управління SSH дійсно важливо!