# Servidor propio Haz copias de seguridad en una carpeta de un equipo que gestionas tú, por SSH. Puede ser un servidor Linux, un NAS, una Raspberry Pi, un VPS, o un Mac o un equipo con Windows que tenga activado su servidor SSH. Frost usa el cliente SSH que ya tiene tu equipo, así que no hay nada que instalar en el servidor. ## Antes de empezar - El servidor necesita SSH y SFTP activados. La mayoría de servidores Linux tienen los dos. En un NAS, búscalos en los ajustes del terminal o de los servicios de archivos. - Necesitas una cuenta en el servidor que pueda escribir en la carpeta que vas a usar. Una cuenta solo para copias de seguridad es buena idea. - En Windows, el cliente OpenSSH tiene que estar instalado. Normalmente lo está. Si no, añádelo en Configuración, en Sistema > Características opcionales. ## En el asistente Ejecuta `frost init` y elige **Self-hosted**. | El asistente pregunta | Respuesta | | --- | --- | | What is the server SSH address? | Un usuario y un host, como `me@nas.local`, o un `Host` de tu configuración de SSH. Añade `:2222` si usa otro puerto | | Which folder on the server? | `frost` de forma predeterminada, que está en tu carpeta personal del servidor. También sirve una ruta completa como `/srv/backups/frost` | El asistente crea la última parte de la carpeta si falta. La carpeta que la contiene ya tiene que existir. ## La clave SSH de Frost Frost proporciona su propia clave SSH, que el asistente crea la primera vez. No necesita tus claves personales ni tu agente SSH, y nunca pide una contraseña, así que las copias programadas se conectan de la misma forma cada vez. El servidor todavía no conoce la clave de Frost, así que la primera vez el asistente te pregunta cómo añadirla: - **Add it for me** (añadirla por mí) le pasa la terminal a ssh. La primera vez que te conectas a un servidor, ssh muestra su huella y te pregunta si confías en él. Después te pide tu contraseña del servidor, añade la clave de Frost y el asistente continúa. Tu contraseña solo va a ssh. Frost nunca la ve ni la guarda. - **I'll add it myself** (la añado yo) muestra dónde está el archivo de la clave pública de Frost. Añade la línea de ese archivo a `~/.ssh/authorized_keys` en el servidor y pulsa `[enter]`. | Equipo | Clave pública de Frost | | --- | --- | | macOS y Linux | `~/.config/frost/ssh/frost_ed25519.pub` | | Windows | `%AppData%\frost\ssh\frost_ed25519.pub` | Cuando el asistente añade la clave por ti, su línea empieza por `restrict`. Esto desactiva la redirección de conexiones y la asignación de terminales, pero Frost sigue pudiendo leer y escribir archivos. Los comandos de shell siguen siendo posibles salvo que el servidor limite la cuenta a SFTP. ### Añadir la clave a mano En macOS o Linux, este comando añade la clave precedida de `restrict` y te pide la contraseña del servidor: ```sh (printf 'restrict '; cat ~/.config/frost/ssh/frost_ed25519.pub) | ssh me@nas.local 'umask 077; mkdir -p .ssh; cat >> .ssh/authorized_keys' ``` Algunos NAS también permiten pegar una clave SSH en los ajustes de tu cuenta. Un servidor Windows guarda las claves en otros sitios, así que **Add it for me** no funciona ahí. Añade la línea a `C:\Users\\.ssh\authorized_keys` para una cuenta normal, o a `C:\ProgramData\ssh\administrators_authorized_keys` para una de administrador. ## Puertos y tu configuración de SSH Frost lee tu configuración SSH, `~/.ssh/config`, igual que ssh. Una entrada `Host` puede definir el usuario, el puerto y otras opciones, y puedes usar su nombre como dirección. Frost proporciona su propia clave, pero también se pueden ofrecer las claves indicadas explícitamente mediante `IdentityFile` en tu configuración SSH. ## Conviene saber - El sistema de archivos del servidor tiene que admitir enlaces duros, que Frost usa para asegurarse de que dos equipos nunca sobrescriban los registros de copia del otro. ext4, Btrfs, XFS, ZFS, APFS y NTFS los admiten todos. El asistente lo comprueba al conectarse. - Si cambia la clave de host del servidor, Frost se niega a conectarse, igual que ssh. Si reinstalaste el servidor, borra su clave antigua con `ssh-keygen -R ` y vuelve a ejecutar `frost init`. - `frost status` muestra lo lleno que está el disco del servidor, y `frost backup` avisa cuando está casi lleno. - Si la carpeta está en un disco que el servidor monta, ese disco tiene que estar montado cuando se hacen las copias. Si la carpeta no está, la copia falla en lugar de escribir en otro sitio.