🔧 Uso de una computadora (Cliente) conectada a otra (Servidor); con WSL y PreTeXt
Esta guía explica cómo configurar una conexión segura mediante SSH entre un Cliente usando Visual Studio Code (VS Code), y un Servidor con Windows 11 y Ubuntu WSL2, para editar y compilar proyectos PreTeXt desde el Cliente. Incluye la configuración de un entorno virtual Python en WSL llamado editorial, donde está instalado PreTeXt, asegurando que el sistema permanezca ordenado y reproducible.
🧭 Escenario de ejemplo
| Equipo | Sistema | Rol | Software relevante |
|---|---|---|---|
| Cliente | Windows 10 o 11 | Cliente SSH | VS Code + Extensión Remote SSH |
| Servidor | Windows 11 con WSL2 (Ubuntu) | Servidor SSH | Python + PreTeXt en entorno virtual editorial |
Con esta configuración, el VS Code del Cliente (laptop) actúa como cliente remoto, mientras que el WSL del Servidor (desktop) ejecuta la compilación de PreTeXt dentro de su entorno virtual.
🧩 Paso 0. Activar el entorno virtual editorial en WSL
Dentro de Ubuntu (WSL), asegúrate de tener creado un entorno virtual donde instalaste PreTeXt.
Por ejemplo, si ya existe en tu home:
source ~/editorial/bin/activate
Si la activación fue correcta, el prompt del terminal mostrará algo así:
(editorial) rommel@Nagasaki:~$
Verifica que PreTeXt esté disponible:
pretext --version
Debería devolver una versión como 2.15.0 o superior.
💡 Hacer que el entorno se active automáticamente
Edita tu archivo ~/.bashrc y añade al final:
# Activar entorno virtual automáticamente
if [ -d "$HOME/editorial" ]; then
source "$HOME/editorial/bin/activate"
fi
Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
Cada vez que entres por SSH o VS Code, el entorno se activará automáticamente.
⚙️ Paso 1. Instalar y verificar SSH en WSL
En el Servidor, abre Ubuntu (WSL) y ejecuta:
sudo apt update
sudo apt install -y openssh-server
sudo service ssh start
Verifica el servicio:
sudo service ssh status
Debe aparecer active (running).
⚙️ Paso 2. Configurar el servidor SSH en WSL
Edita el archivo de configuración:
sudo nano /etc/ssh/sshd_config
Asegúrate de tener:
Port 22
PubkeyAuthentication yes
PasswordAuthentication yes
PermitRootLogin no
UsePAM yes
ChallengeResponseAuthentication no
AllowTcpForwarding yes
Guarda y reinicia el servicio:
sudo service ssh restart
💡 Paso 3. Crear la carpeta .ssh y el archivo authorized_keys
En el WSL:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
Pega allí la clave pública del Cliente (la que está en C:\Users\<usuario>\.ssh\id_ed25519.pub).
Guarda y aplica permisos:
chmod 600 ~/.ssh/authorized_keys
💻 Paso 4. Generar clave SSH en el Cliente
En PowerShell del Cliente:
ssh-keygen -t ed25519 -C "Cliente-rommel"
Presiona ENTER en todas las preguntas.
Esto crea:
C:\Users\rommel\.ssh\id_ed25519
C:\Users\rommel\.ssh\id_ed25519.pub
🔗 Paso 5. Copiar la clave pública al servidor WSL
Usa este comando en PowerShell (ajusta IP según tu caso):
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh rommel@192.168.0.241 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
Así, la m+aquina que actúa como Cliente podrá autenticarse por clave sin pedir contraseña.
⚙️ Paso 6. Configurar VS Code (Remote SSH)
- En el Cliente, abre VS Code.
- Instala la extensión Remote - SSH.
- En la paleta de comandos (
Ctrl+Shift+P), ejecuta:
Y escribe:Remote-SSH: Add New Hostssh rommel@192.168.0.241 - Guarda la configuración en el archivo:
C:\Users\rommel\.ssh\config
Ejemplo de configuración:
Host nagasaki
HostName 192.168.0.241
User rommel
IdentityFile C:\Users\rommel\.ssh\id_ed25519
IdentitiesOnly yes
💡 Paso 7. Conectarse desde VS Code
Haz clic en el icono verde inferior izquierdo (><) →
Selecciona “Connect to Host → nagasaki”.
Si todo está correcto, VS Code abrirá una sesión remota en tu Ubuntu (WSL).
El terminal mostrará algo como:
(editorial) rommel@Nagasaki:~$
Ya estás dentro de tu entorno PreTeXt remoto.
🧱 Paso 8. Compilar y visualizar el libro
En el terminal remoto (dentro de VS Code):
cd ~/Libro_Generico_PreText
pretext build web
cd output/web
python3 -m http.server 8080
Desde el navegador del Cliente, abre:
http://192.168.0.241:8080/
✅ Podrás ver tu libro compilado desde el servidor WSL, dentro del entorno virtual editorial.
🧰 Paso 9. Automatizar el port forwarding (opcional)
WSL cambia de IP al reiniciar. Puedes crear un script PowerShell:
# wsl_port_forward.ps1
$WSL_IP = (wsl hostname -I).Trim()
netsh interface portproxy delete v4tov4 listenport=22
netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=$WSL_IP
Write-Host "SSH port forwarded to WSL IP: $WSL_IP"
Guárdalo y ejecútalo al iniciar sesión en Windows.
✅ Resultado final
El Cliente se conecta por SSH al Servidor (WSL Ubuntu)
y ejecuta PreTeXt dentro del entorno virtual editorial, sin contraseñas ni instalaciones duplicadas.
Este esquema permite centralizar la potencia de cómputo y mantener tu entorno ordenado,
ideal para aulas, laboratorios o autores que usan equipos modestos.
Autor: Rommel J. Contreras
Versión: Octubre 2025
Licencia: CC BY-SA 4.0
