# Fernzugriff — SSH für KI / Entwickler

So verbindet sich eine **KI** (oder du) per SSH mit diesem Server und arbeitet im Projektordner
`C:\xampp\htdocs\tacforce.pro`. Einrichten/prüfen: **`REMOTE-ACCESS.bat`** (Doppelklick, Adminrechte).

## Verbindungsdaten

| | |
|---|---|
| **Host (public IP)** | `80.243.36.15` |
| **Port** | `22` |
| **Benutzer** | `Administrator` |
| **Projektordner** | `C:\xampp\htdocs\tacforce.pro` |
| **Website** | http://80.243.36.15:98 |
| **Privater KI-Schlüssel** | `C:\xampp\htdocs\tacforce.pro\_remote-access\ai_access_key` |

Der SSH-Server (OpenSSH) läuft, Autostart ist aktiv, die Windows-Firewall erlaubt Port 22. ✅ (bereits per Loopback getestet — Key-Login funktioniert)

## Wie eine KI Zugriff bekommt

Es gibt zwei Varianten:

### Variante 1 — den erzeugten Schlüssel weitergeben (am einfachsten)
`REMOTE-ACCESS.bat` hat ein Schlüsselpaar erzeugt und den öffentlichen Teil bereits freigeschaltet.
Gib der KI/dem Dienst die **private** Schlüsseldatei `_remote-access\ai_access_key`. Verbindung:
```
ssh -i "C:\xampp\htdocs\tacforce.pro\_remote-access\ai_access_key" Administrator@80.243.36.15
```

### Variante 2 — den öffentlichen Schlüssel der KI eintragen (sauberer)
Wenn die Ki/der Dienst einen **eigenen** öffentlichen Schlüssel hat (`ssh-ed25519 AAAA…`), füge ihn als
**neue Zeile** hinzu in:
```
C:\ProgramData\ssh\administrators_authorized_keys
```
Danach müssen die Berechtigungen stimmen (nur SYSTEM + Administratoren):
```
icacls "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant *S-1-5-18:F /grant *S-1-5-32-544:F
```
> Wichtig (Windows-Eigenheit): Weil `Administrator` in der Gruppe *Administratoren* ist, gilt für ihn
> **`administrators_authorized_keys`**, NICHT `~/.ssh/authorized_keys`.

## Verbinden aus Tools

**Reines SSH / Dateien:**
```
ssh Administrator@80.243.36.15
sftp Administrator@80.243.36.15         # Dateien hoch/runter
scp datei.txt Administrator@80.243.36.15:C:/xampp/htdocs/tacforce.pro/
```

**VS Code / Cursor (Remote-SSH):** Erweiterung „Remote - SSH" → Host-Eintrag in `~/.ssh/config`:
```
Host tacforce
    HostName 80.243.36.15
    User Administrator
    IdentityFile C:/xampp/htdocs/tacforce.pro/_remote-access/ai_access_key
```
Dann „Connect to Host → tacforce", Ordner `C:\xampp\htdocs\tacforce.pro` öffnen. Die KI liest automatisch `CLAUDE.md`.

**Claude Code über SSH:** einloggen, in den Ordner wechseln, dort `claude` starten (falls installiert). Die KI liest beim Start `CLAUDE.md` / `AGENTS.md` und versteht sofort Struktur, Ports und die Apache-Sicherheitsregeln.

## Zugriff wieder entziehen / Schlüssel rotieren

- **Einen Schlüssel entziehen:** die betreffende Zeile aus `C:\ProgramData\ssh\administrators_authorized_keys` löschen.
- **Neu erzeugen:** `_remote-access\ai_access_key*` löschen, dann `REMOTE-ACCESS.bat` erneut ausführen.
- **Kompletten Fernzugriff abschalten:** `Stop-Service sshd; Set-Service sshd -StartupType Manual` (PowerShell als Admin).

## Erreichbarkeit aus dem Internet (wichtig)

- **Port 22 (SSH)** und **Port 80 (HTTP)** sind vom Server aus erreichbar bestätigt.
- **Port 98 (TacForce-Website)** ist lokal erreichbar, aber der **Upstream-Firewall des Providers (neohost)**
  scheint hohe Ports von außen zu blockieren (auch deine bestehenden Sites auf 8081–8084 antworten von außen nicht).
  Für öffentliche Erreichbarkeit der Website hast du zwei Optionen:
  1. Im **neohost-Panel** eingehend **TCP 90** freigeben.
  2. TacForce zusätzlich als **Subdomain-vHost auf Port 80** spiegeln (wie `mail.kotsch.tech` / `arthurkotsch.online`) und `tacforce.pro` per DNS auf `80.243.36.15` zeigen lassen — sag Bescheid, dann richte ich das ein.

## Sicherheits-Empfehlungen

- Der KI-Schlüssel gibt **vollen Administrator-Zugriff**. Nur an eine vertrauenswürdige KI/Person geben.
- Optional härten in `C:\ProgramData\ssh\sshd_config`, danach `Restart-Service sshd`:
  - `PasswordAuthentication no` (nur noch Schlüssel-Login) — **erst testen, dass dein Key funktioniert!**
  - `PermitRootLogin` gibt es hier nicht (Windows); Zugriff steuerst du über die Schlüsseldatei.
- Standard-Shell über SSH ist `cmd.exe`. Für PowerShell als Default:
  ```
  New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
  ```
