# Удалённое управление Fedora MacBook с Mac (хотспот телефона)

**Схема:** оба ноутбука на Wi‑Fi хотспоте Redmi; прямой SSH часто **блокируется изоляцией клиентов** — обход через Bluetooth PAN.

**Проверено:** 2026-06-16 · `fedora.local` → `10.23.120.30`, ping с Mac **не проходит** (AP isolation).

---

## 1. Быстрый путь

### A. Один раз — Mac

```bash
bash ~/code/local_machine/docs/old_mac/scripts/setup-remote-mac.sh ВАШ_ЛОГИН_FEDORA
bash ~/code/local_machine/docs/old_mac/scripts/build-remote-access-archive.sh
bash ~/code/local_machine/docs/old_mac/scripts/send-to-fedora-bluetooth.sh \
  ~/code/local_machine/docs/old_mac/deliverable/fedora-remote-access.tar.gz
```

### B. Один раз — Fedora (после приёма архива по BT)

Логин: **`p`**

```bash
cd ~/Downloads
tar xzf fedora-remote-access.tar.gz
cd fedora-remote-access
sudo bash setup-ssh-fedora.sh p
sudo bash setup-bt-pan-fedora.sh
```

### C. Подключение с Mac

```bash
bash ~/code/local_machine/docs/old_mac/scripts/bootstrap-ssh-fedora.sh   # один раз, копирует ключ
bash ~/code/local_machine/docs/old_mac/scripts/connect-fedora.sh         # дальше без пароля
```

Пароль хранится локально: `~/.config/old_mac/fedora.env` (см. `fedora.env.example`).

### D. RDP (графический стол, xrdp :3389)

На Fedora уже может быть xrdp. С Mac:

```bash
brew install freerdp   # один раз
bash ~/code/local_machine/docs/old_mac/scripts/connect-rdp-fedora.sh
```

Или **Microsoft Remote Desktop** (App Store): PC `fedora.local` или `10.23.120.30`, port **3389**, user **`p`**.

RDP и SSH одинаково **не достучатся**, пока нет L3 между Mac и Fedora (изоляция хотспота / нет BT PAN).

---

## 2. Диагностика сети хотспота

```bash
bash ~/code/local_machine/docs/old_mac/scripts/discover-fedora.sh
```

| Результат | Значение |
|-----------|----------|
| `fedora.local` резолвится | Fedora в той же Wi‑Fi сети |
| `ping: ok` | Можно SSH по LAN (`ssh fedora-mbp`) |
| `ping: FAIL` + mDNS есть | **Изоляция клиентов** на телефоне → §4 BT PAN |
| `ssh:22 open` | `connect-fedora.sh` должен работать |

Текущая типичная картина:

```text
Mac:     10.23.120.84/24
Gateway: 10.23.120.139 (телефон)
Fedora:  10.23.120.30 (fedora.local)
Ping Mac→Fedora: FAIL (изоляция)
```

---

## 3. Путь LAN (если ping проходит)

### 3.1 Отключить изоляцию на Redmi Note 14

Настройки → Режим модема / Точка доступа → **Дополнительно**:

- **AP isolation** / **Изоляция клиентов** → **Выкл**
- **Разрешить устройствам в сети видеть друг друга** → **Вкл** (если есть)

Переподключить Wi‑Fi на **обоих** Mac. Проверка:

```bash
ping -c2 fedora.local
bash ~/code/local_machine/docs/old_mac/scripts/connect-fedora.sh
```

### 3.2 SSH на Fedora

```bash
sudo bash setup-ssh-fedora.sh USER
```

### 3.3 SSH с Mac

```bash
ssh fedora-mbp          # ~/.ssh/config
# или
bash connect-fedora.sh
```

---

## 4. Путь Bluetooth PAN (обход изоляции хотспота)

Прямой линк **Mac ↔ Fedora** поверх Bluetooth, минуя Wi‑Fi хотспота.

### 4.1 Fedora — PAN-сервер

```bash
sudo bash setup-bt-pan-fedora.sh
```

Остаётся работать в фоне (`bt-network -s nap pan0`), IP Fedora: **172.20.99.1/24**.

### 4.2 Mac — подключить PAN

1. **Bluetooth** → устройство **fedora** → **Connect**  
   (профиль «Сеть» / Network Access Point / NAP — если спросит)
2. Настроить IP:

```bash
bash ~/code/local_machine/docs/old_mac/scripts/setup-bt-pan-mac.sh
```

Mac получит **172.20.99.2/24**, ping Fedora:

```bash
ping -c2 172.20.99.1
```

### 4.3 SSH

```bash
ssh fedora-mbp-bt
# или
bash ~/code/local_machine/docs/old_mac/scripts/connect-fedora.sh
```

---

## 5. Альтернатива: Internet Sharing (Mac → Fedora)

Если PAN с ручными IP капризничает:

1. **Mac:** Системные настройки → Общий доступ → **Общий интернет**  
   - Раздать от: **Wi‑Fi**  
   - Кому: **Bluetooth PAN**
2. **Fedora:** Bluetooth → подключиться к Mac как к сети  
3. Fedora получит `192.168.2.x`, Mac обычно `192.168.2.1`  
4. На Fedora узнать IP: `ip -4 addr show bnep0`  
5. Добавить в Mac `~/.ssh/config` HostName с этим IP или `connect-fedora.sh`

---

## 6. Скрипты

| Скрипт | Где | Назначение |
|--------|-----|------------|
| `setup-remote-mac.sh` | Mac | SSH-ключ + `~/.ssh/config` |
| `build-remote-access-archive.sh` | Mac | Архив для Fedora |
| `send-to-fedora-bluetooth.sh` | Mac | Передать архив |
| `discover-fedora.sh` | Mac | Найти Fedora, проверить LAN |
| `connect-fedora.sh` | Mac | SSH (LAN или BT) |
| `setup-ssh-fedora.sh` | Fedora | sshd + authorized_keys |
| `setup-bt-pan-fedora.sh` | Fedora | BT PAN сервер |
| `setup-bt-pan-mac.sh` | Mac | IP на bnep0 |

---

## 7. SSH config (на Mac после setup-remote-mac)

```ssh-config
Host fedora-mbp old-mac-fedora fedora
  User ВАШ_ЛОГИН
  HostName fedora.local
  IdentityFile ~/.ssh/id_ed25519_fedora

Host fedora-mbp-bt
  HostName 172.20.99.1
  ...
```

---

## 8. Устранение неполадок

| Проблема | Решение |
|----------|---------|
| Permission denied (publickey) | На Fedora: `setup-ssh-fedora.sh`, проверить `mac_pubkey.txt` |
| Connection refused :22 | `sudo systemctl start sshd` |
| No route to host (Wi‑Fi) | Изоляция хотспота → §4 BT PAN |
| Нет bnep0 на Mac | Fedora `setup-bt-pan-fedora.sh` + Bluetooth Connect |
| Fedora Wi‑Fi ещё без firmware | BT PAN или BT file transfer для архивов |

---

## 9. Дерево решений

```mermaid
flowchart TD
  A[Нужен SSH на Fedora] --> B{ping fedora.local?}
  B -->|ok| C[setup-ssh-fedora + ssh fedora-mbp]
  B -->|fail| D[Изоляция хотспота]
  D --> E{Можно выкл. AP isolation?}
  E -->|да| C
  E -->|нет| F[setup-bt-pan-fedora + setup-bt-pan-mac]
  F --> G[ssh fedora-mbp-bt]
```

---

*docs/old_mac — local_machine*
