%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#3c3836','primaryTextColor':'#ebdbb2','primaryBorderColor':'#fabd2f','lineColor':'#fe8019','secondaryColor':'#504945','tertiaryColor':'#665c54','background':'#282828'}}}%% flowchart LR User[("👤 User")] --> Choice{ต้องการอะไร?} Choice -->|Text| Shell["Remote Shell(SSH, Mosh)"] Choice -->|กราฟิก| Desktop["Remote Desktop(VNC, RDP)"] Choice -->|Web| Web["Web-based(Cockpit)"] Shell --> LowBW["Low BW ~KB/s"] Desktop --> HighBW["High BW ~MB/s"] Web --> MidBW["Medium BW"]
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#3c3836','primaryTextColor':'#ebdbb2','primaryBorderColor':'#fabd2f','lineColor':'#fe8019','secondaryColor':'#504945','background':'#282828'}}}%% flowchart TB subgraph Client["💻 SSH Client"] SC[ssh command] CK[("Client Keys")] KH[("Known Hosts")] end subgraph Network["🌐 Network"] Pkt["Encrypted PacketsPort 22"] end subgraph Server["🖥️ SSH Server"] SD[sshd Daemon] HK[("Host Keys")] AK[("authorized_keys")] end SC --> Pkt --> SD SD --> Pkt --> SC
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#3c3836','primaryTextColor':'#ebdbb2','primaryBorderColor':'#fabd2f','lineColor':'#fe8019','actorBkg':'#458588','actorTextColor':'#ebdbb2','signalColor':'#fabd2f','signalTextColor':'#ebdbb2','background':'#282828'}}}%% sequenceDiagram participant C as 💻 Client participant S as 🖥️ Server C->>S: 1. TCP SYN → port 22 S->>C: 2. SSH Version String Note over C,S: 3. Algorithm Negotiation C->>S: 4. KEXINIT S->>C: 5. KEXINIT Note over C,S: 6. Key Exchange (ECDH) Note over C,S: 7. คำนวณ Shared Secret K C->>S: 8. NEWKEYS Note over C,S: 🔒 Encrypted Channel Ready C->>S: 9. User Authentication S->>C: 10. Auth Success
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#3c3836','primaryTextColor':'#ebdbb2','primaryBorderColor':'#fabd2f','lineColor':'#fe8019','actorBkg':'#689d6a','actorTextColor':'#ebdbb2','background':'#282828'}}}%% sequenceDiagram participant C as 💻 Client participant S as 🖥️ Server C->>S: 1. ขอ Login เป็น user "moo" S->>S: 2. อ่าน authorized_keys S->>C: 3. ส่ง Challenge (encrypted) C->>C: 4. Decrypt ด้วย Private Key C->>S: 5. ส่ง Hash กลับ S->>S: 6. ตรวจสอบ Hash S->>C: 7. ✅ Auth Success
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#3c3836','primaryTextColor':'#ebdbb2','primaryBorderColor':'#fabd2f','lineColor':'#fe8019','secondaryColor':'#504945','background':'#282828'}}}%% flowchart LR subgraph Local["🏠 เครื่อง Local"] Browser[("Applocalhost:8080")] end subgraph SSHC["🔒 SSH Tunnel"] Tunnel["ssh -L 8080:db:5432"] end subgraph Remote["🌐 Remote Network"] Bastion["Bastion"] DB[("Databasedb:5432")] end Browser -->|connect| Tunnel Tunnel -->|encrypted| Bastion Bastion -->|plaintext| DB
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#3c3836','primaryTextColor':'#ebdbb2','primaryBorderColor':'#fabd2f','lineColor':'#fe8019','secondaryColor':'#504945','background':'#282828'}}}%% flowchart TB subgraph Browser["🌐 Browser"] UI["Cockpit UIhttps://server:9090"] end subgraph Server["🖥️ Server"] CWS["cockpit-wsport 9090"] CB["cockpit-bridge"] SYS[(systemd, NetworkManager,firewalld, podman, libvirt)] end UI <-->|HTTPS+WS| CWS CWS --> CB CB --> SYS