---
title: "Innebygd SSH for Comma-agenter · Comma-bloggen"
description: "Agenten blir i harnessen og når maskinene dine over SSH, via en offentlig adresse, gjennom Tailcat eller gjennom ditt eget tailnet."
url: https://comma.surf/nb/blog/native-ssh
language: nb
---

[Tilbake til bloggen](https://comma.surf/nb/blog)

19. oktober 2026

# Innebygd SSH for Comma-agenter

[Kom i gang](https://app.comma.surf/) [Les dokumentasjonen](https://comma.surf/nb/docs/salix/agent-runtimes)

Hjemmeserveren din har sluttet å fullføre den nattlige sikkerhetskopien. Loggene ligger på serveren, serveren står bak ruteren din, og du vil at [Comma](https://comma.surf/nb/) skal finne ut hva som skjedde, ikke gi deg en liste med kommandoer du må kopiere fram og tilbake. Agentene i Comma kan nå jobbe på maskinen over SSH, uten at du installerer enda en AI-agent på den.

## Agenten bor utenfor sandkassen

De fleste skyagenter kjører inne i sandkassen sin: en container eller VM som rommer modelløkken, verktøyene og filene, og som står på så lenge agenten gjør det. Salix, den distribuerte harnessen bak Comma, skiller disse fra hverandre. Agentløkken kjører i harnessen, utenfor enhver sandkasse, med over 100 agenter per CPU-kjerne. En sky-VM eller en enhet er et sted der kommandoer kjører, og brukes bare når arbeidet trenger en datamaskin.

For å jobbe på serveren din flytter agenten altså ikke dit. Den kaller innebygde SSH-verktøy fra harnessen:

- `ssh.open`, `ssh.write`, `ssh.read` og `ssh.screen` for en interaktiv terminal, også med fullskjermprogrammer;
- `ssh.exec` for én kommando, med stdout, stderr og exit-status holdt atskilt;
- `ssh.list_files`, `ssh.download` og `ssh.upload` for filer, over SFTP;
- `ssh.close` og `ssh.list` for livssyklusen til tilkoblingen.

Agenten autentiserer seg med en **Group SSH key**: én nøkkel per arbeidsområde, delt av agentene der. `ssh.public_key` returnerer den, og du legger den til i `~/.ssh/authorized_keys` på maskinen, slik du ville gjort for en hvilken som helst annen SSH-klient.

Harnessen kan nå maskinen din på tre måter.

## 1. En offentlig adresse

Har maskinen allerede en SSH-server som kan nås, kobler agenten seg til IP-adressen eller DNS-navnet:

json

```
{ "tool": "ssh.open", "params": { "host": "203.0.113.10", "user": "deploy" } }
```

## 2. Tailcat, for en maskin uten offentlig adresse

En bærbar eller en hjemmeserver bak NAT har ofte ingen adresse som harnessen kan ringe opp. [Tailcat](https://github.com/tailscale/tailcat) kobler den til uten en innkommende port, en VPN eller en konto. Det kjører på maskinen, lager bare utgående tilkoblinger og skriver ut en adresse som begynner med `tc`.

Tailcat kan også selv være SSH-serveren. Kjør det med den offentlige Group-nøkkelen:

sh

```
tailcat serve --ssh-authorized-keys='ssh-ed25519 AAAA...' ssh
```

Dette gir et innloggingsskall, kjøring av kommandoer og SFTP som kontoen som kjører Tailcat. Det trenger ingen `sshd` og endrer ikke SSH-konfigurasjonen din. Kjører maskinen allerede OpenSSH, bruker du `tailcat serve 22` i stedet, og OpenSSH tar seg av innloggingen. Send så adressen til agenten:

json

```
{ "tool": "ssh.open", "params": { "tailcat": "tc...", "user": "deploy" } }
```

## 3. Ditt eget Tailscale-nettverk

Er maskinene dine allerede i et tailnet, kan arbeidsområdet bli med i det. Koble det til i innstillingene i Comma-appen, eller be agenten gjøre det. En tailnet-administrator åpner en innloggingslenke og godkjenner noden. Noden bruker taggen `tag:comma-agent` som standard, så tailnet-policyen din bestemmer nøyaktig hvilke enheter og porter den kan nå, for eksempel bare port 22 på hjemmeserveren.

Agenten lister enheter med `tailnet.peers` og kobler seg til med MagicDNS-navn eller Tailscale-adresse:

json

```
{
  "tool": "ssh.open",
  "params": { "host": "nas.tail1234.ts.net", "via_tailnet": true, "user": "deploy" }
}
```

## Tillit og levetid

På alle veiene lagrer den første tilkoblingen til en vert vertsnøkkelen. En senere tilkobling som viser en annen nøkkel, blir avvist med `host_key_mismatch` og begge fingeravtrykkene, og agenten spør deg før den fjerner den gamle nøkkelen med `ssh.known_hosts.remove`.

En SSH-tilkobling hører til én agentøkt. Den lukkes etter 30 minutter uten bruk og overlever ikke en omstart av agenten eller en deploy av plattformen, så langvarig arbeid hører hjemme i `tmux` eller `screen` på den eksterne maskinen. Kommandoer har grenser: `ssh.exec` får tidsavbrudd etter 60 sekunder som standard og høyst 600, og et tidsavbrudd blir rapportert, aldri prøvd på nytt automatisk.

For sikkerhetskopien kunne du be om: «Les loggene og sjekk diskplassen, men ikke slett filer eller endre konfigurasjonen. Fortell meg først hva du finner.»

[Tilbake til bloggen](https://comma.surf/nb/blog)

## Try Comma, Now.

[Kom i gang](https://app.comma.surf/)
