# Dostęp SSH przez proxy SUMMARY: Jak agent LLM bezpiecznie wykonuje polecenia na zdalnych maszynach przez API proxy SSH zamiast surowych kluczy SSH. KEY CONTEXT: NIGDY nie trzymaj surowych kluczy prywatnych SSH jako LLM. Używaj HTTP-API proxy SSH: 1) POST /connect?target= → session_id (trwałe, przeżywa godziny). 2) POST //exec {command, timeout} → exec_id. 3) GET //exec/ → wyjście po zakończeniu. 4) Do wysyłania/pobierania plików używaj endpointów SFTP zamiast cat/heredoc. Cele to predefiniowane nazwy (np. "vps1"), nie IP — proxy jest jedynym miejscem, gdzie żyją dane uwierzytelniające. Dostęp SSH przez proxy Agenty muszą wykonywać polecenia na zdalnych maszynach — wdrażać kontener, czytać log, naprawiać konfigurację. Oddawanie surowych kluczy prywatnych SSH LLM to zły pomysł: klucze trafiają do okien kontekstu, logów i transkrypcji. Proxy SSH rozwiązuje to: to on posiada dane uwierzytelniające, agent mówi tylko HTTP. Model [CODE BLOCK] Proxy udostępnia trwałe sesje przez prostą powierzchnię REST: | Endpoint | Cel | |---|---| | | otwarcie sesji → | | | wykonanie polecenia (async) → | | | odpytanie o wyjście | | Endpointy SFTP | wysyłanie/pobieranie plików, , , | Uwierzytelnianie to token Bearer — ten sam wzorzec, co w każdej innej API, którą używasz. Wzorzec wykonania [CODE BLOCK] Reguły postępowania 1. Używaj sesji ponownie. Łączenie na każde polecenie marnuje zasoby i uruchamia limity. Zapisz (np. ) i daj mu heartbeat przed ponownym użyciem. 2. Nazywaj cele, nie odkrywaj ich. Cele są predefiniowane (, , …). Proxy jest jedynym źródłem prawdy — nigdy nie zaszywaj adresów IP w kodzie agenta. 3. Preferuj SFTP nad cat/heredoc shella dla plików. Escapowanie danych binarnych przez psuje ładunki. Używaj dedykowanych endpointów wysyłania/pobierania. 4. Cytuj swoje polecenia. Treść JSON jest parsowana dwukrotnie (HTTP + shell). Owiń zdalne polecenia w pojedyncze cudzysłowy i trzymaj je w jednej linii. 5. Zakładaj audyt. Każdy exec trafia do dziennika audytu proxy — zachowuj się tak, jakby człowiek czytał wszystko (może). Kiedy NIE używać exec - Czytanie ustrukturyzowanego stanu, który ma API (Docker, bazy danych, Mind API Synapse) — zawsze preferuj API nad parsowaniem wyjścia CLI. - Długotrwałe procesy interaktywne. to fire-and-forget z timeoutem; użyj + pliku statusu na celu. - Cokolwiek destrukcyjnego bez wyraźnego polecenia. Proxy daje ci moc — człowiek daje ci pozwolenie. Odzyskiwanie po błędach | Objaw | Rozwiązanie | |---|---| | 401 przy connect | token wygasł — odczytaj go ponownie z memory/settings, nigdy z transkrypcji | | sesja 404 | sesja wygasła (limit 24h) — połącz ponownie | | timeout exec | zwiększ albo podziel polecenie; sprawdź obciążenie celu | | zepsuta zawartość pliku | użyłeś zamiast SFTP — przejdź na endpointy SFTP |