Як підключитися до віддаленого сервера через SSH?
Secure Shell (SSH) - це протокол для безпечного доступу до віддалених систем і керування ними. Він шифрує обмін даними між клієнтом і сервером, захищаючи дані від несанкціонованого доступу та підвищуючи безпеку системи.
SSH надає розробникам, системним адміністраторам та ІТ-фахівцям безпечний та ефективний спосіб віддаленого доступу до комп'ютерів без фізичної присутності. Це підвищує продуктивність і полегшує керування системами. Крім того, SSH простий у використанні та підтримує різні інструменти й клієнти. Окрім віддаленого доступу, його також можна використовувати для передавання файлів, виконання команд і навіть тунелювання з'єднань.
У цьому гайді показано, як за допомогою команди ssh підключатися до віддалених серверів через SSH у Windows, Linux і macOS.
Як працює SSH? (Як підключитися до сервера через SSH)
SSH працює, встановлюючи захищене з'єднання між клієнтом і SSH-сервером (sshd).
У прикладах вище команда ssh виконувала роль клієнта, а на віддаленій системі працював SSH-сервер (sshd).
Більшість систем Linux автоматично запускають SSH-сервер під час завантаження. Однак якщо він не працює, вам може знадобитися отримати доступ до сервера через вебконсоль або локальну консоль, щоб запустити його вручну.
Запуск SSH-сервера в Ubuntu
Якщо SSH-сервер не працює, його можна запустити такою командою:
$ sudo systemctl start ssh
Коли сервер запущено, ви можете віддалено увійти через SSH.
$ sudo systemctl status ssh
Як використовувати SSH у Windows?
Якщо ви використовуєте Windows 10 або новішу версію, SSH уже вбудовано в систему, тож налаштувати його просто.
Увімкнення SSH у Windows 10
- Відкрийте Settings (Параметри) і перейдіть до Apps > Optional Features (Застосунки > Додаткові компоненти).
- Перевірте, чи встановлено OpenSSH Client. Якщо ні, натисніть Add a feature (Додати компонент), знайдіть OpenSSH Client і встановіть його.
Підключення до віддаленого сервера
Після ввімкнення SSH ви можете підключитися до віддаленої системи за допомогою PowerShell або командного рядка:
ssh username@server_ip
Замініть username на своє ім'я користувача, а server_ip на IP-адресу віддаленого сервера.
Використання PuTTY у старіших версіях Windows
Якщо ви використовуєте Windows 8 або ранішу версію, у якій SSH за замовчуванням немає, можна скористатися PuTTY, безкоштовним SSH-клієнтом із графічним інтерфейсом:
1. Завантажте та встановіть PuTTY з офіційної сторінки PuTTY.
2. Відкрийте програму та введіть IP-адресу сервера.
3. Укажіть порт 22 (стандартний порт SSH).
PuTTY також є чудовим варіантом, якщо ви надаєте перевагу графічному інтерфейсу, а не інструментам командного рядка.
Як використовувати SSH у Linux?
У більшості дистрибутивів Linux SSH встановлено заздалегідь. Щоб перевірити, чи доступний SSH у вашій системі, відкрийте термінал і виконайте таку команду:
$ ssh
Встановлення SSH у Linux
Якщо SSH не встановлено, його можна додати за допомогою менеджера пакетів. Для дистрибутивів на основі Debian, як-от Ubuntu, використовуйте:
$ sudo apt-get install openssh-client
Підключення до віддаленого сервера
Після встановлення SSH ви можете створити захищене з'єднання з віддаленим сервером, виконавши:
$ ssh username@server_ip
У наведеній команді потрібно замінити username на своє ім'я користувача, а server_ip на IP-адресу віддаленого сервера.
Як використовувати SSH на Mac?
Щоб встановити SSH-з'єднання в macOS, виконайте такі кроки:
Натисніть значок Terminal у Dock, щоб запустити його.
Ініціюйте SSH-з'єднання: використайте команду SSH у такому форматі:
ssh username@hostname
Наприклад, якщо ім'я користувача test, а пристрій Centos.local, команда буде такою:
ssh [email protected]
Підтвердіть з'єднання: якщо ви підключаєтеся вперше, введіть Yes, коли з'явиться запит на підтвердження з'єднання.
Введіть пароль: введіть пароль на запит, щоб автентифікувати сеанс.
Завершіть сеанс SSH: щоб завершити сеанс, натисніть CTRL+D або введіть:
exit
Закриття сеансу запобігає випадковому надсиланню команд і підвищує безпеку.
Поширені команди та можливості SSH
Після встановлення SSH-з'єднання з віддаленим сервером ви можете виконувати різні завдання, як-от тунелювання, передавання файлів і виконання віддалених команд.
1. Безпечне перенаправлення портів через SSH
SSH-тунелювання дає змогу безпечно маршрутизувати трафік між локальною та віддаленою системами. Щоб налаштувати локальне перенаправлення портів, використовуйте:
ssh -L 8080:localhost:3306 [email protected]
У цьому прикладі порт 8080 на вашому локальному комп'ютері перенаправляє трафік на порт 3306 віддаленого сервера за адресою 192.168.1.110.
2. Безпечне передавання файлів і керування ними
SSH також підтримує зашифроване передавання файлів за допомогою SCP і SFTP.
- Передавання файлу з локальної системи на віддалену за допомогою SCP:
scp report.pdf [email protected]:/home/user/documents/
Ця команда безпечно копіює report.pdf з локальної системи до каталогу /home/user/documents/ на віддаленому сервері.
- Використання SFTP для керування віддаленими файлами:
sftp [email protected]
Після підключення ви можете переходити між каталогами, щоб інтерактивно завантажувати файли на сервер і з сервера.
3. Спрощення віддаленого доступу через SSH за допомогою конфігураційного файлу
Щоб спростити підключення, можна налаштувати файл SSH (~/.ssh/config) для зберігання параметрів підключень, які часто використовуються.
Приклад конфігурації:
Host devserver
HostName 192.168.1.110
User user
Port 2222
Тепер замість введення повної команди можна підключитися так:
$ ssh devserver
4. Виконання команд на віддаленому сервері
Щоб виконати одну команду віддалено без інтерактивного входу, використовуйте:
$ ssh [email protected] "df -h"
Ця команда отримує інформацію про використання диска (df -h) з віддаленого сервера.
Як входити через SSH за допомогою ключів?
Хоча автентифікація за паролем дає змогу отримати доступ до віддалених систем, використання SSH-ключів є ефективнішим і безпечнішим методом.
Як працює автентифікація за ключами?
Автентифікація за SSH-ключами використовує пару криптографічних ключів:
- Приватний ключ: зберігається в безпечному місці на пристрої клієнта, і ним ніколи не слід ділитися.
- Публічний ключ: його можна вільно передавати або розміщувати на будь-якому сервері, до якого ви хочете отримати доступ.
Під час спроби підключення віддалений сервер використовує публічний ключ, щоб надіслати клієнту зашифроване контрольне повідомлення (challenge). Приватний ключ клієнта розшифровує це повідомлення, і клієнт надсилає відповідь, підтверджуючи свою автентичність. Після налаштування SSH-ключів цей обмін відбувається автоматично.
Генерація SSH-ключів
Щоб налаштувати автентифікацію за SSH-ключами, згенеруйте пару ключів на локальному комп'ютері, виконавши:
$ ssh-keygen -t rsa
Під час налаштування вам можуть запропонувати задати парольну фразу для файлів ключів, але це необов'язково. Натисніть Enter, щоб прийняти налаштування за замовчуванням. Ключі буде збережено в каталозі ~/.ssh/ з такими іменами файлів:
Public key: ~/.ssh/id_rsa.pub
Private key: ~/.ssh/id_rsa
Перевірка файлів SSH-ключів
Перейдіть до каталогу .ssh:
cd ~/.ssh
Перевірте права доступу та вміст згенерованих ключів за допомогою команди:
ls -l
Ця команда показує відомості про файли, що дає змогу переконатися, що їх створено правильно.
Як вимкнути автентифікацію за паролем для SSH?
Після налаштування автентифікації за SSH-ключами ви можете додатково підвищити безпеку, вимкнувши вхід за паролем. Так доступ до сервера матимуть лише користувачі з правильним приватним ключем.
Важлива примітка: перш ніж продовжити, переконайтеся, що ваш публічний ключ правильно встановлено на сервері. Інакше ви можете втратити доступ.
Зміна конфігурації SSH для вимкнення входу за паролем
Відкрийте конфігураційний файл SSH від імені користувача з правами root або sudo:
$ sudo nano /etc/ssh/sshd_config
1. Знайдіть рядок PasswordAuthentication, видаліть символ # на його початку (якщо він є) і змініть значення на "no":
PasswordAuthentication no
2. Переконайтеся, що автентифікацію за публічним ключем увімкнено, а автентифікацію типу «запит-відповідь» (challenge-response) вимкнено. У файлі мають бути такі параметри:
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Збережіть файл і закрийте його.
Щоб застосувати нові налаштування, перезапустіть службу SSH командою:
$ sudo systemctl reload ssh
Таким чином автентифікацію за паролем буде вимкнено, і доступ буде можливий лише через автентифікацію за SSH-ключами.
Найкращі практики для підвищення безпеки SSH-з'єднань
Щоб захистити свої SSH-з'єднання, дотримуйтеся цих найкращих практик:
1. Використовуйте SSH-ключі або надійні паролі: SSH-ключі забезпечують кращий захист, ніж паролі. Якщо ви використовуєте пароль, подбайте, щоб він був довгим, унікальним і складним, з поєднанням літер, цифр і символів.
2. Вимкніть вхід від імені root: запобігайте несанкціонованому доступу, вимкнувши прямий вхід від імені root у конфігураційному файлі SSH (/etc/ssh/sshd_config) за допомогою параметра:
PermitRootLogin no
3. Змініть стандартний порт SSH: замініть стандартний порт (22) на власний, щоб знизити ризик автоматизованих атак. Оновіть рядок "Port 22" у sshd_config і перезапустіть SSH, щоб зміни набули чинності.
4. Використовуйте інструменти безпеки: встановіть інструменти на кшталт Fail2Ban, щоб виявляти й блокувати повторні невдалі спроби входу та запобігати атакам методом перебору (brute-force):
$ sudo apt-get install fail2ban
Упровадження цих заходів посилить безпеку SSH і захистить від несанкціонованого доступу.
Висновок
Володіння SSH є цінною навичкою для кожного, хто працює з хмарними обчисленнями. З цього гайду ви дізналися, як підключитися до віддаленого сервера через SSH. Вивчаючи його функції, ви відкриєте для себе розширені можливості, які спрощують завдання. Завдяки високому рівню безпеки, ефективності та універсальності SSH став широко використовуваним інструментом у різних сферах застосування.
Розгорніть свій KVM VPS миттєво в 20 локаціях по всьому світу з BlueVPS! Користуйтеся безперебійним віддаленим доступом, повним контролем і на 100 % виділеними ресурсами з віртуалізацією KVM. Обирайте VPS на базі Linux або Windows з усіма основними панелями керування та підтримкою експертів 24/7. Почніть зараз, щоб отримати потужний і надійний хостинг!
Blog