Команди SSH для керування Linux-сервером — це спосіб, у який вебмайстер безпечно під'єднується до віддаленого Linux-сервера, щоб через термінал керувати файлами, службами, користувачами, логами, безпекою та продуктивністю. Для найнеобхідніших потреб з'єднання встановлюють командою ssh користувач@ip-сервера; за допомогою ls, cd, pwd, cp, mv, rm, nano, systemctl, journalctl, top, df, du, chmod, chown, tar, scp та rsync сайт публікують, помилки аналізують, служби перезапускають, а резервні копії впорядковують. Цей посібник на практичних прикладах розтлумачує основні команди, які найчастіше потрібні вебмайстрам у щоденній роботі, особливо тим, хто користується хостингом, VPS або виділеним сервером.
Хоча керувати сайтом лише з панелі керування часто буває достатньо, знання SSH дає величезну перевагу, коли зростає трафік, потрібне спеціалізоване програмне забезпечення, треба проаналізувати логи помилок або виконати термінове втручання. Скажімо, якщо ваш сайт на WordPress видає помилку 500, замість того щоб чекати, доки завантажиться панель, ви можете за лічені хвилини кількома командами перевірити заповненість диска, стан PHP-FPM, логи Nginx або Apache та нещодавно змінені файли. Це і час простою скорочує, і допомагає зберегти позиції в SEO. Якщо ви ще на етапі вибору серверної інфраструктури, корисно буде порівняти VPS Server та Веб-хостинг відповідно до ваших потреб.
Що таке SSH і чому це важливо для вебмайстрів?
SSH — це скорочення від Secure Shell, захищений протокол для встановлення шифрованого з'єднання з віддаленим сервером. Якщо FTP використовують лише для передавання файлів, то SSH відкриває вам доступ до командного рядка сервера. Завдяки цьому ви можете перейти до кореневої веб-директорії, виправити права доступу, перезапустити служби, перевірити брандмауер, створити резервну копію бази даних і стежити за лог-файлами в реальному часі.
Для вебмайстра знання SSH дає три основні переваги. Перша — швидкість: замість того щоб завантажувати великі файли через панель, ви можете стиснути їх прямо на сервері за секунди або хвилини. Друга — прозорість: ви безпосередньо бачите логи, використання процесора, споживання оперативної пам'яті та стан диска. Третя — контроль: проблеми на кшталт збою прав доступу, падіння служби чи неправильної конфігурації можна вирішити негайно. Особливо на VPS, хмарних і виділених серверах SSH стає майже обов'язковою навичкою адміністрування.
Що потрібно знати перед встановленням SSH-з'єднання
Для під'єднання через SSH зазвичай потрібні три речі: IP-адреса сервера або доменне ім'я, ім'я користувача та спосіб автентифікації. Типовий порт у більшості Linux-систем — 22; з міркувань безпеки можуть використовувати інший порт. Команда для з'єднання в найпростішому вигляді така: ssh користувач@ip-сервера. Якщо порт інший, під'єднуються так: ssh -p 2222 користувач@ip-сервера.
Під час першого з'єднання термінал попросить підтвердити відбиток сервера. Цей крок потрібен, щоб переконатися, що ви під'єдналися саме до того сервера, до якого треба. Коли ви пишете Yes і продовжуєте, запис про сервер додається до файлу known_hosts на вашому комп'ютері. Якщо згодом сервер змінився або IP-адресу було перепризначено, ви можете отримати попередження безпеки; у такому разі спершу слід пересвідчитися, що ви справді під'єднуєтеся до правильного сервера.
Різниця між входом за паролем та SSH-ключем
Вхід за паролем простий, але більш уразливий до атак перебором. SSH-ключ працює так: на вашому комп'ютері зберігається приватний ключ, а на сервері — відкритий, і це значно безпечніше. Щоб створити ключ, можна скористатися командою ssh-keygen -t ed25519. Щоб додати відкритий ключ на сервер, зазвичай використовують ssh-copy-id користувач@ip-сервера. Після налаштування ключа вимкнення входу за паролем суттєво підвищує рівень безпеки.
| Метод | Перевага | Ризик | Рекомендоване застосування |
|---|---|---|---|
| SSH за паролем | Швидке налаштування | Високий ризик атаки при слабких паролях | Тимчасовий доступ і початкове встановлення |
| SSH-ключ | Безпечніший і придатний для автоматизації | Ризик, якщо не захищено приватний ключ | Постійне керування сервером |
| Нестандартний порт | Зменшує кількість бот-сканувань | Сам по собі не є достатнім захистом | Разом із ключем та брандмауером |
| Вимкнений вхід для root | Зменшує ризик зловживання правами | Неправильне налаштування sudo може ускладнити доступ | Продуктові сервери |
Базові команди для навігації та перегляду файлів
Перші команди, які варто вивчити в терміналі Linux, — це перегляд поточної директорії, зміна директорії та виведення списку файлів. Команда pwd показує, де ви зараз перебуваєте. cd /var/www/html дає змогу перейти до кореневої веб-директорії. cd .. піднімає на рівень вище, а cd без параметрів повертає до домашньої директорії користувача. Команда ls виводить список файлів; ls -la показує разом із прихованими файлами права доступу, власника, розмір і дату.
Для вебмайстрів особливо важливо швидко знаходити такі файли, як .htaccess, wp-config.php, robots.txt, sitemap.xml та index.php. Команда ls -lah показує розміри файлів у зручному для читання форматі. Наприклад, замість 1048576 ви побачите 1.0M. Якщо в директорії дуже багато файлів, ls -lt виводить спочатку ті, що змінювалися останніми. Це зручно, щоб дослідити змінені після зламу файли або щойно завантажені файли плагінів.
Практичний сценарій: перевірка кореневої веб-директорії
Файли сайту зазвичай розташовані в /var/www, /home/користувач/public_html або /usr/share/nginx/html. Приблизний алгоритм дій може бути таким: подивіться, де ви перебуваєте, командою pwd, перейдіть до директорії сайту через cd /var/www/назва-сайту, виведіть список файлів командою ls -lah, перевірте загальний розмір директорії через du -sh . Якщо ви розміщуєте кілька сайтів, тримати кожен сайт під окремим користувачем і в окремій директорії — здоровіша практика і з погляду безпеки, і для зручності обслуговування. Разом із цим можна скористатися посібниками Доменний запит для керування доменними іменами та Налаштування хостингу для процесів публікації сайту.
Операції з файлами та папками: створення, копіювання, переміщення, видалення
Щоб створити файл, використовують touch файл.txt, щоб створити папку — mkdir назва-папки. Вкладені папки можна створити однією командою: mkdir -p резервні-копії/2026/січень. Копіювання файлу виконують командою cp джерело призначення, копіювання папки — cp -r папка-джерело папка-призначення. Для переміщення або перейменування слугує команда mv стара-назва нова-назва.
Команди видалення потребують обережності. rm файл.txt видаляє один файл, rm -r назва-папки видаляє папку з усім вмістом. Команда rm -rf примусово видаляє без жодних підтверджень і, якщо її виконати не в тій директорії, може спричинити великі втрати. Перш ніж застосовувати rm -rf на продуктовому сервері, обов'язково перевірте своє місцезнаходження командою pwd і перегляньте ціль командою ls. Якщо перед критичними операціями зробити коротку резервну копію за допомогою tar або rsync, це займе кілька хвилин, але може запобігти годинам відновлення.
Звичка до безпечного видалення
Для новачків найбезпечніший метод — замість видалення спершу перемістити файл до карантинної папки. Наприклад, командами mkdir /root/карантин і mv підозрілий-файл.php /root/карантин/ ви можете ізолювати файл, не видаляючи його. Якщо сайт працює без проблем, згодом можна видалити його остаточно. Такий підхід особливо корисний під час чищення шкідливих файлів, вилучення плагінів і змін теми.
Команди для перегляду та редагування вмісту файлів
Щоб побачити весь вміст файлу, використовують cat файл.txt, щоб гортати посторінково — less файл.txt. Для великих лог-файлів cat може зайво засмітити термінал, тому less тут доречніший. Переглянути перші рядки файлу можна командою head файл.txt, останні — tail файл.txt. Для стеження за логами в реальному часі надзвичайно цінною є команда tail -f /var/log/nginx/error.log.
Для редагування файлів можна користуватися такими редакторами, як nano, vim або micro. Для початківців найпрактичніший nano. Командою nano .htaccess ви відкриваєте файл, після редагування зберігаєте його через Ctrl+O і виходите через Ctrl+X. Не забувайте, що під час редагування конфігурації PHP, серверного блоку Nginx, віртуального хоста Apache або robots.txt навіть маленька друкарська помилка може вплинути на роботу сайту. Взяти за правило робити резервну копію перед змінами командою cp файл файл.bak — це добрий стандарт.
Керування правами доступу та власником: chmod і chown
На Linux-серверах права доступу до файлів критично важливі для роботи та безпеки сайту. Команда chmod змінює права доступу, chown — власника. Для типового сайту часто використовують значення 755 для папок і 644 для файлів. Наприклад, chmod 644 wp-config.php впорядковує права доступу до файлу. Для масової зміни прав у папках застосовують логіку find . -type d -exec chmod 755 {} ;, а для файлів — find . -type f -exec chmod 644 {} ;.
Щодо власника, використовують команди на кшталт chown -R www-data:www-data /var/www/назва-сайту, але це значення може відрізнятися залежно від дистрибутива та веб-сервера. На Ubuntu Apache або Nginx здебільшого працюють від www-data; у середовищах, подібних до cPanel, кожен сайт може мати власного користувача. Неправильний власник може спричинити проблеми із завантаженням або помилки 403. Надто широкі права, як-от 777, хоча й здаються швидким розв'язанням проблеми, насправді створюють дірку в безпеці. Особливо в директоріях для завантажень потрібно блокувати виконувані файли та обмежувати права на запис.
Базові команди для перевірки диска, RAM і CPU
Коли виникають проблеми з продуктивністю, перше, куди слід зазирнути, — це споживання ресурсів. df -h показує відсоток заповнення розділів диска. Якщо кореневий розділ заповнений на 100 відсотків, служби не можуть записувати логи, база даних може заблокуватися, а сайт — видати помилку 500. Команда du -sh * підсумовує розміри папок у поточній директорії. Щоб знайти великі логи, кеш або резервні копії, можна скористатися du -ah /var/www | sort -h | tail.
Для оперативної пам'яті та процесора використовують top або htop. Якщо htop не встановлено, це можна зробити через apt install htop або dnf install htop. Команда free -m показує стан RAM і swap. uptime повідомляє, як довго працює система, і дає значення load average. Якщо на одноядерному сервері значення load довго тримається вище 1, а на багатоядерному перевищує кількість ядер, це може вказувати на проблему з продуктивністю. Коли зростання трафіку стає регулярним, може знадобитися потужніший план або оптимізація; тут варто розглянути Linux VPS та Корпоративний Хостинг.
Керування службами: контроль Apache, Nginx, PHP і MySQL через systemctl
У сучасних дистрибутивах Linux керування службами здебільшого здійснюється через systemctl. Щоб перевірити стан служби, використовують systemctl status nginx, щоб перезапустити — systemctl restart nginx, щоб перезавантажити конфігурацію — systemctl reload nginx. Для Apache назва служби може бути apache2 або httpd, для PHP-FPM — php8.2-fpm чи подібна з номером версії, для MySQL — mysql або mariadb.
Гарна звичка — тестувати конфігурацію перед кожним перезапуском. Для Nginx використовують команду nginx -t, для Apache — apachectl configtest. Якщо тест не пройдено, перезапуск може призвести до падіння сайту. Наприклад, якщо в конфігурації Nginx пропущено крапку з комою, nginx -t покаже помилку з номером рядка. Безпечніше спочатку виправити помилку, а потім виконати systemctl reload nginx.
Швидкий чек-лист служб для вебмайстра
- Якщо сайт не відкривається, замість ping або браузера перевірте на сервері systemctl status веб-служба.
- При помилці 502 перевірте стан PHP-FPM і лог помилок Nginx.
- При помилці з'єднання з базою даних перевірте systemctl status mysql і заповненість диска.
- Якщо змінювали конфігурацію, по можливості використовуйте reload замість restart.
- Перед кожною зміною робіть .bak-копію відповідного файлу.
Аналіз логів: як знайти джерело помилки за лічені хвилини
Лог-файли — це свого роду «чорна скринька» сервера. Для Nginx часто використовують /var/log/nginx/access.log і /var/log/nginx/error.log, для Apache — /var/log/apache2/access.log і /var/log/apache2/error.log. Логи PHP-FPM залежно від дистрибутива можуть бути у /var/log/php8.2-fpm.log або всередині journalctl. Логи MySQL можна знайти в /var/log/mysql/error.log.
Команда journalctl -xe показує останні помилки, пов'язані з системними службами. Якщо ввести journalctl -u nginx -n 100, ви отримаєте останні 100 записів служби Nginx. Для стеження в реальному часі можна використовувати journalctl -u php8.2-fpm -f. Щоб знайти певне слово в лозі, застосовують grep. Наприклад, grep 500 access.log допоможе знайти коди стану 500. grep -i error файл.log виконає пошук без урахування регістру.
З точки зору SEO, аналіз логів цінний не лише для розв'язання проблем, а й для розуміння бюджету сканування та поведінки ботів. Через access log можна побачити, які сторінки відвідує Googlebot, на яких URL скупчуються помилки 404 і які ресурси відповідають надто повільно. Для регулярного технічного SEO-аудиту корисно поєднувати аналіз логів із матеріалами SEO-сумісний хостинг та Оптимізація швидкості веб-сайту.
Команди для пошуку, фільтрації та обробки тексту

Для пошуку файлів або тексту на сервері потужними інструментами є find, grep, awk і sed. find /var/www -name wp-config.php шукає конкретний файл. find . -type f -mtime -1 показує файли, змінені за останні 24 години. Ця команда дуже стає в пригоді, коли є підозра на несанкціоновану зміну файлів. grep -R base64_decode . шукає файли, що містять base64_decode у поточній директорії; цей вираз не завжди означає щось шкідливе, але його часто можна побачити у зловмисному PHP-коді.
Під час аналізу логів awk дає змогу виділяти певні стовпці. Наприклад, щоб побачити IP-адреси, які надсилають найбільше запитів в access log, можна взяти стовпець з IP через awk, а потім підрахувати через sort і uniq -c. Такий аналіз допомагає завчасно помітити надмірний бот-трафік, спроби перебору паролів або DDoS-подібну поведінку. На просунутому рівні це можна поєднувати з fail2ban, обмеженням частоти запитів і рішеннями WAF.
Передавання файлів: scp, sftp та rsync
SSH використовують не лише для виконання команд, а й для передавання файлів. Команда scp локальний-файл користувач@ip-сервера:/цільова/директорія надсилає файл із вашого комп'ютера на сервер. Щоб забрати файл із сервера на комп'ютер, пишуть scp користувач@ip-сервера:/шлях/до/файлу ./ . Для великих папок rsync ефективніший за scp, оскільки не переміщує повторно ті файли, що не змінилися.
Команда rsync -avz джерело/ користувач@ip-сервера:/призначення/ виконує передавання в архівному режимі, зі стисненням і докладним виводом. Параметр --delete видаляє у цільовій директорії файли, яких немає у джерелі; користуватися ним потрібно обережно. Rsync — потужне рішення для перенесення WordPress, передавання файлів зі staging-середовища в продакшн або синхронізації з резервним сервером. Якщо ви встановлюєте SSL або переходите на HTTPS, перед передаванням файлів чітко визначте план щодо сертифікатів і переспрямувань; матеріал Сертифікат SSL може стати в пригоді під час цього процесу.
Команди SSH для резервного копіювання та відновлення
Резервна копія — це страховка серверного адміністрування. Для файлової копії можна використати команду tar -czf site-yedek.tar.gz /var/www/назва-сайту. Ця команда перетворює директорію на стиснений gzip-архів. Щоб розпакувати архів, виконують tar -xzf site-yedek.tar.gz. Для великих сайтів безпечніше зберігати копію за межами веб-директорії та за можливості переносити її у віддалене сховище.
Для резервної копії бази даних поширеною є команда mysqldump -u користувач -p назва_бази_даних > kopia.sql. Для відновлення використовують mysql -u користувач -p назва_бази_даних < kopia.sql. Для великих баз даних процес може тривати довго; використання screen або tmux дає змогу продовжити операцію, навіть якщо з'єднання обірветься. Наприклад, ви можете відкрити сесію командою screen -S backup, запустити резервування, а потім від'єднатися за допомогою Ctrl+A і D. Пізніше повернутися можна через screen -r backup.
Критичні налаштування SSH для безпеки
Безпека SSH — це двері до безпеки всього сервера. Перша рекомендація — вимкнути прямий вхід для користувача root. Натомість створюють звичайного користувача з правами sudo. Команда adduser webmaster додає користувача, usermod -aG sudo webmaster надає права sudo. Після цього редагують конфігурацію SSH у файлі /etc/ssh/sshd_config. Такі параметри, як PermitRootLogin no і PasswordAuthentication no, можна використовувати разом із входом за ключем.
Після змін надзвичайно важливо протестувати конфігурацію sshd і, не закриваючи поточну сесію, спробувати під'єднатися з нового вікна термінала. Якщо ви припуститеся помилки в налаштуваннях, то можете заблокувати собі доступ до сервера. З боку брандмауера командами на кшталт ufw allow 2222/tcp і ufw enable слід відкривати лише необхідні порти. Але якщо ви змінили порт SSH, спершу переконайтеся, що можете під'єднатися через новий порт, перш ніж закривати стару сесію.
Мінімальний чек-лист безпеки
- Використовуйте надійний пароль або, що краще, SSH-ключ.
- Вимкніть вхід для root і створіть користувача з правами sudo.
- Зупиніть непотрібні служби та відкривайте лише необхідні порти.
- Регулярно оновлюйте системні пакунки: apt update та apt upgrade.
- Регулярно аналізуйте логи; для підозрілих IP використовуйте fail2ban.
- Не зберігайте резервні копії в єдиному екземплярі на тому самому сервері.
Керування пакунками та команди оновлення
На системах на базі Ubuntu та Debian використовують apt, на базі RHEL, як-от AlmaLinux і Rocky Linux, — dnf або yum. Для Ubuntu apt update оновлює список пакунків, apt upgrade оновлює встановлені пакунки. Щоб встановити конкретний пакунок, виконують apt install nginx, щоб видалити — apt remove назва-пакунка. На RHEL-подібних системах аналогічні функції виконують dnf update і dnf install назва-пакунка.
Оновлення на живому сервері правильніше застосовувати під час вікна обслуговування, а не робити це навмання. Особливо оновлення PHP, MySQL, OpenSSL і веб-сервера можуть вплинути на поведінку сайту. Критичні безпекові оновлення не варто відкладати, але професійний підхід — це спочатку зробити резервну копію, перевірити конфігурації та за можливості протестувати все на staging-середовищі.
Приклад алгоритму екстреного втручання для вебмайстрів
Уявіть, що одного ранку ваш сайт не відкривається. Замість паніки найшвидшим рішенням буде дотримуватися стандартного алгоритму. Спочатку під'єднайтеся через SSH. Перевірте uptime, щоб зрозуміти, чи відповідає сервер, і подивіться на значення load. Подивіться на заповненість диска через df -h. Проаналізуйте використання RAM і CPU за допомогою free -m і top. Далі перевірте стан веб-служби через systemctl status nginx або apache2. Якщо є помилка 502, перевірте стан служби PHP-FPM. Якщо помилка бази даних — виконайте systemctl status mysql і перегляньте відповідний лог-файл.
Після цього прочитайте останні помилки за допомогою tail -n 100 лог-помилок. Якщо проблема почалася після оновлення нового плагіна або теми, знайдіть останні змінені файли через ls -lt. За потреби тимчасово перейменуйте відповідну папку. Якщо диск заповнений, знайдіть старі логи або непотрібні резервні копії; перш ніж видаляти, переконайтеся, що саме ви видаляєте. Ці кроки дають змогу звузити коло причин у більшості базових сценаріїв простою за 5–15 хвилин.
Поширені помилки під час використання команд SSH
Найпоширеніша помилка — копіювати та виконувати команду, не розуміючи її суті. Не кожна команда, знайдена в інтернеті, підходить для вашого сервера. Особливо ризикованими є rm -rf, chmod -R 777, chown -R і команди для видалення бази даних. Друга помилка — постійно працювати під користувачем root. Використання sudo, коли потрібні права root, зменшує ризик випадкової зміни системних файлів.
Третя помилка — робити зміни без резервної копії. Навіть простий конфігураційний файл може вивести сайт із ладу. Четверта помилка — постійно перезапускати служби, не читаючи логи. Перезапуск іноді дає тимчасове полегшення, але може приховати першопричину. П'ята помилка — повністю ігнорувати оновлення безпеки. Застарілі версії PHP, CMS або серверних пакунків збільшують поверхню для атаки.
Зведена таблиця основних команд SSH
| Операція | Команда | Коли використовувати? |
|---|---|---|
| З'єднання | ssh користувач@ip-сервера | Щоб під'єднатися до сервера з термінала |
| Перегляд директорії | pwd | Щоб дізнатися, в якій ви папці |
| Виведення списку | ls -lah | Щоб побачити файли, права, власника та розмір |
| Перевірка диска | df -h | Щоб перевірити відсоток заповнення диска |
| Розмір папки | du -sh * | Щоб знайти, яка папка скільки місця займає |
| Стан служби | systemctl status nginx | Щоб побачити, чи працює веб-служба |
| Стеження за логом | tail -f лог-помилок.log | Щоб стежити за помилками в реальному часі |
| Резервна копія файлів | tar -czf копія.tar.gz папка | Щоб стиснути файли сайту |
| Передавання | rsync -avz джерело призначення | Щоб синхронізувати великі файли або папки |
| Зміна прав | chmod 644 файл | Щоб упорядкувати права доступу до файлу |
Висновок: знання SSH пришвидшує операційну роботу вебмайстра
Команди SSH для керування Linux-сервером — це базова навичка, яку повинні знати не лише системні адміністратори, а й вебмайстри, що керують серйозними веб-проєктами. З правильними командами файловий менеджмент, аналіз логів, контроль служб, резервування та безпекові операції стають швидшими та прогнозованішими. На старті досить кількох команд; з часом, поєднуючи їх із безпечними звичками, ви станете більш незалежним і підготовленим фахівцем.
Коли ви плануєте свою інфраструктуру хостингу, VPS, доменів і SSL на Hostragons, оцінювання потреб у SSH-доступі, резервному копіюванні, безпеці та продуктивності в комплексі дає здоровіший результат у довгостроковій перспективі. Щоб обрати потрібний тип сервера або посилити наявну структуру, ви можете ознайомитися з відповідними посібниками Hostragons і спокійно, згідно з технічними вимогами, визначити інфраструктуру, яка підходить саме вашому проєкту.
Часті запитання
Чи обов'язково бути root для керування Linux-сервером через команди SSH?
Ні. Більше того, на продуктових серверах не рекомендують безпосередньо використовувати root. Безпечніший підхід — під'єднуватися як звичайний користувач із правами sudo і виконувати адміністративні завдання через sudo, коли це потрібно.
Які команди SSH вебмайстру-початківцю слід вивчити першочергово?
Передусім варто зосередитися на ssh, pwd, cd, ls -lah, cp, mv, rm, nano, df -h, du -sh, top, systemctl, tail -f, grep, tar, scp та rsync. Ці команди покривають більшу частину щоденних операцій із файлами, службами, логами та резервними копіями.
Чому SSH-з'єднання може бути відхилене?
Найпоширеніші причини — неправильна IP-адреса або порт, непрацююча служба SSH, блокування брандмауером, хибне ім'я користувача, неправильний файл ключа або вимкнений параметр PasswordAuthentication на сервері. Спершу слід перевірити порт, користувача та стан служби.
Чи безпечно використовувати chmod 777?
Зазвичай ні. chmod 777 робить файл або папку доступними для читання, запису та виконання всіма. Це створює ризик для безпеки, особливо у веб-директоріях. У більшості сценаріїв безпечнішим стартовим значенням є 755 для папок і 644 для файлів.
Що краще: робити резервну копію через SSH чи через панель керування?
Можна використовувати обидва способи. Резервні копії через панель практичні, через SSH — гнучкіші та придатні для автоматизації. Для великих сайтів резервування через SSH за допомогою tar, mysqldump і rsync може бути більш контрольованим; найкращий підхід — це регулярна, протестована стратегія резервного копіювання з віддаленою копією.