Що таке SSH-доступ на віртуальному хостингу
SSH-доступ на shared-хостингу відрізняється від доступу на VDS: замість повноцінної оболонки з root-правами користувач потрапляє в jailshell — ізольоване середовище, обмежене його домашньою директорією. Це захищає інших клієнтів на тому самому сервері: ви не бачите чужі файли і не можете змінювати системні налаштування.
Такого доступу достатньо для git-деплою, запуску composer, wp-cli, npm-скриптів збірки та звичайної роботи з файлами через rsync або scp — усе, що не потребує зміни версії ядра або встановлення системних пакетів.
Як увімкнути SSH-доступ у cPanel
У розділі «Security» відкрийте «SSH Access» → «Manage SSH Keys». Якщо пункту немає в інтерфейсі, доступ по SSH для акаунта вмикає підтримка хостингу за заявкою в тікет — на більшості тарифів функція доступна одразу, але може бути вимкнена за замовчуванням із міркувань безпеки.
Дані для підключення: ім'я хоста або IP сервера, ім'я користувача cPanel і порт SSH — зазвичай нестандартний, відмінний від 22. Точний порт вказаний у розділі «SSH Access» або в листі з даними акаунта.
Підключення за SSH-ключем
Пароль для SSH використовувати не варто — ключова пара надійніша і не боїться перебору. Згенеруйте пару на своєму комп'ютері:
ssh-keygen -t ed25519 -C "deploy@example.com" -f ~/.ssh/zevshost_key
Публічний ключ (файл з розширенням .pub) додайте в cPanel через «Manage SSH Keys» → «Import Key», вставивши його вміст цілком. Після імпорту натисніть «Authorize» навпроти ключа — без цього кроку сервер продовжить просити пароль.
Підключення з явною вказівкою ключа і порту:
ssh -i ~/.ssh/zevshost_key -p 2222 username@example.com
Що доступно в jailshell, а що ні
| Дія | Доступно |
|---|---|
| Робота з файлами всередині своєї директорії | Так |
| git clone, composer, npm, wp-cli | Так |
| rsync і scp між серверами | Так |
| sudo і встановлення системних пакетів | Ні |
| Перегляд процесів інших користувачів | Ні |
| Зміна версії PHP з консолі | Ні, лише через MultiPHP Manager |
Версію PHP для CLI-скриптів у jailshell бере значення, виставлене в MultiPHP Manager для домену — командою php -v можна лише перевірити поточну версію, а не змінити її.
Типові команди у щоденній роботі
Перевірка зайнятого місця і структури сайту після підключення:
cd ~/public_html
du -sh * | sort -rh | head -10
Оновлення залежностей проєкту на PHP і запуск відкладеного завдання через cron вручну для перевірки:
composer install --no-dev --optimize-autoloader
php artisan schedule:run
Підсумок: чек-лист безпечної роботи по SSH
- Вимкніть вхід за паролем там, де це дозволяє панель, і використовуйте лише ключ.
- Зберігайте приватний ключ поза репозиторієм і не пересилайте його в месенджерах.
- Вказуйте нестандартний порт SSH з листа з даними акаунта, а не порт 22.
- Пам'ятайте: jailshell не дає root — частина команд зі встановлення ПЗ не працюватиме.
- Для зміни PHP використовуйте MultiPHP Manager, а не змінні середовища в shell.