---
title: Vincular y migrar
description: Vincula un sitio del panel con uno local y usa push/pull con revalidación.
sidebar:
  label: Vincular y migrar
  order: 3
---

`plak panel link` prepara el acceso SSH de tu equipo y lo vincula con un sitio local de Plak. El resultado es un remoto válido reutilizable por las operaciones existentes, sin copiar a mano host, puerto, usuario y ruta.

```bash
plak panel link <sitio-panel> <sitio-local> [--system-user USUARIO] [--path RUTA]
plak panel link <sitio-panel> <sitio-local> [--key CLAVE | --generate] [--alias NOMBRE] [--yes] [--json]
plak panel unlink <sitio-local> [--yes]
plak panel links [--json]
```

## Flujo

1. **Elige el sitio del panel y el local**

    `<sitio-panel>` es el id o el dominio exacto (ver `plak panel sites`). `<sitio-local>` debe existir (créalo antes con `plak add`).

    ```bash
    plak panel sites
    plak list
    ```

2. **Autoriza una clave pública**

    Selecciona una clave local existente o genera una con `--generate` (`~/.ssh/plak-panel-<sitio>`, ed25519). Solo se autoriza su parte pública en el panel (`ssh:authorize`).

    Sin TTY, pasa `--system-user`, `--key` o `--generate` y `--path` según pida el contrato.

3. **Verifica y vincula**

    La CLI verifica el acceso SSH y la raíz WordPress real (`StrictHostKeyChecking=accept-new`; las rutas con espacios funcionan). Una ruta incorrecta nunca se vincula.

    Después crea o reutiliza un remoto SSH (alias por defecto `panel-<dominio>`, sin sobrescribir otros) y lo adjunta al sitio local. El registro `.panel-link` guarda panel, cuenta e IDs de sitio, servidor y remoto — sin secretos.

`plak panel unlink` elimina solo el registro local. El remoto se mantiene (`plak remote detach` lo desvincula) y la autorización SSH instalada vive en el panel (Servidores > SSH keys) con ciclo propio: **revocar la API key no la retira**.

## Migrar con el enlace

```bash
plak pull [<sitio>] [--yes] [--proxy-uploads]
plak push [<sitio>] [--yes]
```

En sitios vinculados, `push` y `pull` revalidan el destino del panel **antes** de cualquier confirmación destructiva: cambios de cuenta o de panel, remoto cambiado, asociación retirada, sitio renombrado o eliminado y tokens inválidos detienen la operación con una explicación en lugar de migrar a ciegas. El motor de transferencia SSH es el mismo; los remotos manuales sin `.panel-link` se comportan exactamente igual que antes.

:::warning
Los ciclos de vida son independientes: la API key autoriza llamadas HTTP; `push` y `pull` usan SSH con la clave autorizada durante la vinculación. Un token de solo lectura no restringe credenciales SSH ya instaladas.
:::
