Table of Contents

Acceso al Servidor

Detalles del servidor

Cada grupo tiene su propia máquina virtual. Los detalles son:

hostname: cc3201.dcc.uchile.cl
usuario: cc3201
port: 3XX

Donde XX es el número del grupo. El grupo 7, por ejemplo, usa el puerto 307 y el grupo 13 usa el 313.

La máquina trae Debian 13 con Postgres 17 ya instalado, y nada más. Su cuenta cc3201 tiene sudo (privilegios administrativos), así que la idea es que, con estas instrucciones, ustedes puedan partir desde cero: configurar Postgres, bajar datos, diseñar el esquema relacional, crear tablas, cargar los datos, escribir consultas, armar índices y vistas, etc. El resultado final será una aplicación web.

Las páginas están pensadas para seguirse en este orden:

  1. Esta página (entrar a la máquina y subir archivos).
  2. Configurar Postgres (crear su usuario y su esquema).
  3. Conexión externa. Solo para los grupos que hagan una aplicación web, y recién en el Hito 3. Para el Hito 2 y para los proyectos de análisis estadístico no hace falta.

Algunas palabras que aparecen en estas páginas:

Término Qué es
máquina virtual (VM) Un computador simulado dentro de un servidor del DCC. Cada grupo tiene uno propio, con Linux, donde puede instalar y configurar lo que necesite.
terminal La ventana donde se escriben comandos. En Linux y Mac se llama Terminal; en Windows, PowerShell.
SSH El programa (y protocolo) para entrar a otra máquina y escribir comandos como si se tuviera su teclado enfrente.
puerto Un número que identifica a qué programa va dirigida una conexión. cc3201.dcc.uchile.cl usa un puerto distinto para cada máquina (3XX), y así sabe a cuál mandarlos.
scp Copia archivos entre su computador y el servidor, usando la misma conexión de SSH.
sudo Ejecuta un comando como administrador (root). Se usa para instalar programas o editar archivos del sistema.
apt-get El instalador de programas de Debian. sudo apt-get install <programa> baja e instala un programa.

Contraseña

Cada grupo tendrá su propia contraseña que será distribuida por correo. Es la misma para ssh, scp y sudo.

Acceso por SSH

El acceso por SSH es parecido a lo que hacen en los labs; lo que cambia es el puerto.

En una terminal (bash en Linux o Mac, o PowerShell en Windows 10/11, que ya trae ssh), para entrar a la máquina del grupo 13, por ejemplo, hay que poner:

ssh -p 313 cc3201@cc3201.dcc.uchile.cl

La primera vez que se conecten, ssh va a preguntar si confían en el servidor:

The authenticity of host '[cc3201.dcc.uchile.cl]:313' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Hay que escribir yes (la palabra completa) y apretar Enter. Después pide la contraseña. Al escribirla no aparece nada en pantalla, ni siquiera asteriscos; es normal. Si entraron bien, la línea de comandos cambia a algo como cc3201@cc3201-13:~$. Para salir de la máquina, exit.

Si prefieren una interfaz gráfica en Windows, pueden usar PuTTY con el host cc3201.dcc.uchile.cl y el puerto 3XX.

Transferencia de datos

Para transferir archivos desde la terminal hay que usar scp. Ojo que scp usa -P (mayúscula) para el puerto, a diferencia de ssh, que usa -p. Estos comandos se ejecutan en su notebook, no dentro del servidor. Para copiar un archivo local al servidor:

scp -P 313 local.txt cc3201@cc3201.dcc.uchile.cl:/home/cc3201/

O al revés, para copiar un archivo desde el servidor a una carpeta local:

scp -P 313 cc3201@cc3201.dcc.uchile.cl:/home/cc3201/remote.txt /local/carpeta/

Con WinSCP (Windows)

WinSCP es un programa gratuito para Windows que muestra las carpetas de su computador y las de la máquina virtual lado a lado, y permite arrastrar archivos de un lado a otro. Solo sirve para transferir archivos; para ejecutar comandos en el servidor sigue haciendo falta ssh.

Al abrir WinSCP aparece la ventana Login. Seleccionen New Site, dejen SFTP como protocolo (File protocol) y llenen el servidor cc3201.dcc.uchile.cl (1), el puerto de su grupo, 3XX (2), el usuario cc3201 (3) y la contraseña de SSH (4). Después presionen Login (5). Con Save el sitio queda guardado para la próxima vez, como el “Grupo 7” de la captura.

Ventana Login de WinSCP con servidor, puerto, usuario y contraseña

La primera vez que se conecten, WinSCP muestra una advertencia porque no conoce la clave del servidor. Es la misma pregunta que hace ssh la primera vez; presionen Accept.

El panel izquierdo muestra su computador y el derecho la máquina virtual. En el ejemplo se suben cuatro archivos CSV. En el panel izquierdo, abran la carpeta donde están los archivos (1), y revisen que el derecho esté en /home/cc3201/ (2). Seleccionen los archivos con Shift o Ctrl (3) y arrástrenlos al panel derecho (4), o presionen Upload (5). WinSCP pide confirmar con una ventana en la que basta presionar OK.

WinSCP antes de subir: su computador a la izquierda y la máquina virtual a la derecha

Al terminar, los archivos aparecen en el panel derecho, es decir, ya están en la máquina virtual. Para bajar archivos del servidor se hace lo mismo al revés, arrastrándolos del panel derecho al izquierdo (o con Download).

WinSCP después de subir: los archivos ya están en /home/cc3201/

Prueba con sudo

Pueden usar sudo para ejecutar comandos como administrador. Para probarlo:

sudo echo "hello"

La primera vez pide la contraseña (la misma de SSH) y después debería imprimir hello.

Si en cambio aparece una advertencia como esta:

sudo: unable to resolve host cc3201-XX

hay que editar el archivo /etc/hosts:

sudo vim /etc/hosts

… y agregar el nombre del servidor al IP de localhost así:

127.0.0.1    localhost cc3201-XX

… donde XX es el número del grupo. En vim, hay que presionar i para empezar a editar el archivo; luego, para guardar y salir, hay que presionar Esc, y después poner :wq [enter]. (Si se perdieron dentro de vim, Esc y luego :q! [enter] sale sin guardar.)

Bajar datos de la Web

Otra opción es bajar archivos directamente de la Web al servidor usando wget. La máquina no lo trae, así que primero hay que instalarlo:

sudo apt-get install wget

apt-get pregunta Do you want to continue? [Y/n]; hay que responder Y y Enter. Después se pueden bajar archivos de la Web:

wget https://raw.githubusercontent.com/<usuario>/<repositorio>/main/datos.csv

Así se pueden subir datos a algún sitio web (como GitHub) y luego bajarlos al servidor, pero hay que usar el enlace directo al archivo crudo. En GitHub es el que aparece al apretar el botón Raw. Los enlaces para compartir de Google Drive o Dropbox apuntan a una página HTML y no al archivo, así que wget baja esa página.

(Otra opción sería instalar un cliente git en el servidor, con sudo apt-get install git, hacer un commit/push localmente y un pull en el servidor.)

Para personas curiosas: cómo es la máquina por dentro

No hace falta saber esto para el proyecto. Estos son los datos de una de las máquinas del curso; las de ustedes deberían ser iguales, y los pueden revisar con los comandos de la última columna.

Qué Valor Comando para verlo
Sistema operativo Debian GNU/Linux 13 (trixie), kernel 6.12, 64 bits cat /etc/os-release, uname -rm
Virtualización Máquina virtual Xen, dentro de un servidor del DCC systemd-detect-virt
Procesador 1 núcleo de un Intel Xeon Gold 6148 (2,4 GHz) nproc, lscpu
Memoria RAM 700 MB, más 1 GB de swap (memoria de respaldo en disco, mucho más lenta) free -h
Disco 10 GB en total: 9 GB para el sistema y sus datos (unos 7 GB libres al partir) y 1 GB de swap df -h /, lsblk
Postgres 17.11 psql –version
Red interna Una dirección privada 10.0.220.x; desde internet se llega solo por cc3201.dcc.uchile.cl ip -br a
Zona horaria UTC (3 o 4 horas más que en Chile, según la época del año) timedatectl

Algunas consecuencias prácticas: