Files
Keenetic_SSH/README.md
2026-05-30 18:26:38 +03:00

127 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Keenetic SSH через Telegram
Минимальный бот: пишешь команду в Telegram — она уходит на роутер по SSH. Без веб-морды, без графиков — зато ставится за пару минут на старый VPS.
Команды и логика SSH — из [keenetic-unified](https://github.com/andrey271192/keenetic-unified); если нужен полный дашборд, берите тот проект.
![Превью: Telegram и команды SSH](docs/preview.png)
---
## Возможности
- `/ssh имя команда` и `/ssh all команда` — выполнение на одном или всех роутерах (verbose: exit-код, вывод)
- `/neo`, `/uptime`, `/interfaces`, `/reboot`, `/ping`
- `/add`, `/setip`, `/setname`, `/setweb`, `/delete`, `/list`, `/router`
- Список роутеров хранится в `data/routers.json` на сервере
---
## Требования
- Ubuntu 22/24 (или другой Linux с systemd)
- `sshpass`, `openssh-client`, Python 3.10+
- Токен бота и **один** chat ID (бот отвечает только этому чату)
---
## Установка
```bash
git clone https://github.com/andrey271192/Keenetic_SSH.git /opt/keenetic-ssh
cd /opt/keenetic-ssh
bash install.sh
nano .env
```
Пример `.env` (подставь свои значения из [@BotFather](https://t.me/BotFather) и свой числовой chat id):
```env
TELEGRAM_TOKEN=000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
TELEGRAM_CHAT_ID=000000000
SSH_USER=root
SSH_PASS=your_router_password
```
Перезапуск после правок `.env`:
```bash
systemctl restart keenetic-ssh
```
Логи:
```bash
journalctl -u keenetic-ssh -f
```
---
## Роутеры
Добавить из Telegram (имя, IP и при необходимости логин/пароль SSH):
```
/add office1 192.168.1.1 root your_password
```
Или отредактировать `data/routers.json` на сервере:
```json
{
"office1": {
"ip": "192.168.1.1",
"user": "root",
"password": "your_password",
"display_name": "Офис 1",
"web_url": ""
}
}
```
Поле `wan_ip` поддерживается как запасной вариант, если `ip` пустой.
---
## Команды бота
| Команда | Описание |
|--------|----------|
| `/help` | Справка |
| `/list` | Список роутеров |
| `/router имя` | Карточка |
| `/ssh имя команда` | SSH на роутер |
| `/ssh all команда` | На всех с IP |
| `/neo имя status\|restart` | Neo |
| `/uptime`, `/interfaces`, `/reboot` | Как в SSH |
| `/ping имя` | Ping с VPS до IP роутера |
| `/add имя IP [user] [pass]` | Добавить |
| `/setip`, `/setname`, `/setweb`, `/delete` | Настройка |
---
## Поддержка
[Boosty — донат](https://boosty.to/andrey27/donate)
**Связь:** [Telegram @PCAdministration](https://t.me/PCAdministration) — вопросы и обратная связь.
---
## Обновление
```bash
cd /opt/keenetic-ssh && git pull && systemctl restart keenetic-ssh
```
## Удаление с сервера (одной командой)
Останавливается `keenetic-ssh`, удаляется unit и каталог **`/opt/keenetic-ssh`**:
```bash
curl -fsSL https://raw.githubusercontent.com/andrey271192/Keenetic_SSH/main/uninstall.sh | sudo bash
```
Из каталога установки: `sudo bash uninstall.sh`