SSH · Git Deploy · DietPi · Docker · Nginx
🔐 SSH — підключення та ключі
| Команда | Що робить |
| ssh user@192.168.1.109 | Підключитись до сервера за IP |
| ssh -i ~/.ssh/iot_server_key dietpi@192.168.1.109 | Підключитись з конкретним приватним ключем |
| ssh-keygen -t ed25519 -C “email” | Згенерувати новий SSH ключ (ed25519) |
| cat ~/.ssh/id_ed25519.pub | Показати публічний ключ (для копіювання на сервер) |
| ssh-copy-id user@192.168.1.109 | Скопіювати публічний ключ на сервер автоматично |
| nano ~/.ssh/config | Відкрити конфіг SSH (alias для хостів) |
| ssh -p 2222 user@host | Підключитись на нестандартний порт |
| exit | Закрити SSH сесію |
💡 Приклад ~/.ssh/config: Host dietpi / HostName 192.168.1.109 / User dietpi / IdentityFile ~/.ssh/iot_server_key
🐙 Git — deploy та базові команди
| Команда | Що робить |
| git clone https://github.com/user/repo.git | Клонувати репо через HTTPS |
| GIT_SSH_COMMAND=”ssh -i ~/.ssh/deploy_key” git clone git@github.com:user/repo.git | Клонувати з конкретним SSH ключем |
| git pull | Отримати останні зміни з remote |
| git pull origin main | Отримати зміни з гілки main |
| git status | Показати стан робочої директорії |
| git log –oneline -10 | Останні 10 комітів в одну строку |
| git stash | Тимчасово зберегти незакомічені зміни |
| git stash pop | Повернути збережені зміни |
| git checkout -b feature/new | Створити і переключитись на нову гілку |
💡 Deploy key — read-only ключ прив’язаний до конкретного репо. Додається в GitHub → Settings → Deploy keys
🥧 DietPi — системні команди
| Команда | Що робить |
| sudo poweroff | Вимкнути сервер |
| sudo reboot | Перезавантажити сервер |
| sudo apt update && sudo apt upgrade -y | Оновити всі пакети |
| sudo apt install -y git curl wget | Встановити пакети |
| dietpi-config | Відкрити конфігуратор DietPi (меню) |
| dietpi-software | Встановити/видалити програми через меню |
| df -h | Дискова статистика (скільки місця) |
| free -h | Статистика RAM |
| htop | Моніторинг процесів в реальному часі |
| uptime | Час роботи сервера без перезавантаження |
| journalctl -f | Дивитись системні логи в реальному часі |
| sudo systemctl status назва | Статус сервісу |
| sudo systemctl restart назва | Перезапустити сервіс |
| sudo systemctl enable назва | Додати сервіс в автозапуск |
🐳 Docker — контейнери та compose
| Команда | Що робить |
| docker ps | Список запущених контейнерів |
| docker ps -a | Всі контейнери (включно зупинені) |
| docker images | Список образів |
| docker logs -f назва | Логи контейнера в реальному часі |
| docker exec -it назва bash | Зайти всередину контейнера |
| docker stop назва | Зупинити контейнер |
| docker restart назва | Перезапустити контейнер |
| docker rm назва | Видалити контейнер |
| docker rmi образ | Видалити образ |
| docker-compose up -d | Запустити всі сервіси у фоні |
| docker-compose down | Зупинити і видалити контейнери |
| docker-compose down -v | Зупинити + видалити volumes (дані!) |
| docker-compose logs -f | Логи всіх сервісів |
| docker-compose pull | Оновити образи |
| docker stats | Моніторинг CPU/RAM контейнерів |
| docker system prune -a | Очистити всі невикористані образи/контейнери |
💡 docker-compose down -v видаляє volumes — всі дані БД будуть втрачені! Використовуй обережно.
🌐 Nginx — веб-сервер та reverse proxy
| Команда | Що робить |
| sudo systemctl status nginx | Статус Nginx |
| sudo systemctl restart nginx | Перезапустити Nginx |
| sudo systemctl reload nginx | Перезавантажити конфіг без зупинки |
| sudo nginx -t | Перевірити конфіг на помилки (завжди перед reload!) |
| sudo nano /etc/nginx/nginx.conf | Головний конфіг Nginx |
| sudo nano /etc/nginx/sites-available/mysite | Конфіг конкретного сайту |
| sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/ | Увімкнути сайт |
| sudo tail -f /var/log/nginx/error.log | Дивитись помилки Nginx |
| sudo tail -f /var/log/nginx/access.log | Дивитись access логи |
| sudo certbot –nginx -d example.com | Отримати SSL сертифікат Let’s Encrypt |
| sudo certbot renew –dry-run | Тест оновлення SSL сертифіката |
💡 Завжди запускай sudo nginx -t перед sudo systemctl reload nginx — це рятує від простою сервісу через помилку в конфізі.
Malware Analysis Laboratory · github.com/PacktPublishing/Malware-Development-for-Ethical-Hackers-Second-Edition