Acceso al servidor

El acceso al servidor se realiza mediante SSH (Secure Shell), un protocolo seguro que permite conectarse de forma remota a una computadora o servidor mediante una terminal. SSH permite trabajar en el servidor como si estuviéramos frente a él, ejecutando comandos, administrando archivos y enviando trabajos de análisis.

Actualmente, Windows, macOS y Linux ya incluyen un cliente SSH por defecto, por lo que normalmente no es necesario instalar programas adicionales para conectarse al servidor.

En este manual usaremos la siguiente estructura general:

ssh <usuario>@<servidor>

Donde:

Por ejemplo:

ssh usuario@beagle.ib.unam.mx

O, si se usa una dirección IP:

ssh usuario@192.168.1.100

En Windows 10 y Windows 11 se puede usar PowerShell o la Terminal de Windows.

Para conectarte al servidor, abre PowerShell y escribe:

La primera vez que te conectes, el sistema puede mostrar un mensaje parecido a este:

The authenticity of host 'servidor' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Escribe:

yes

Después se solicitará la contraseña de tu usuario.

Después ingresa tu contraseña cuando el sistema la solicite.

Cambio de contraseña al primer ingreso

Cuando se crea una cuenta nueva en el servidor, se proporciona una contraseña temporal. Esta contraseña se utiliza únicamente para realizar el primer inicio de sesión y deberá cambiarse obligatoriamente al ingresar por primera vez.

Primero conéctate normalmente mediante SSH:

ssh <usuario>@<servidor>

El servidor solicitará la contraseña:

(<usuario>@<servidor>) Password:

Aquí debes escribir la contraseña temporal que se te proporcionó y presionar Enter.

Después de ingresar correctamente, el sistema indicará que la contraseña ha expirado y que debe cambiarse:

Password expired. Change your password now.
Current Password:

Cuando aparezca:

Current Password:

debes escribir nuevamente la contraseña temporal que utilizaste para ingresar.

Posteriormente, el sistema solicitará una nueva contraseña:

New password:

Aquí debes escribir la nueva contraseña que deseas utilizar.

Finalmente aparecerá:

Retype new password:

Debes escribir nuevamente la misma contraseña para confirmarla.

El proceso completo se verá aproximadamente así:

$ ssh <usuario>@<servidor>

(<usuario>@<servidor>) Password:

Password expired. Change your password now.

Current Password:
New password:
Retype new password:

El significado de cada solicitud es:

  1. Password: → escribe la contraseña temporal proporcionada.
  2. Current Password: → escribe nuevamente la contraseña temporal.
  3. New password: → escribe tu nueva contraseña.
  4. Retype new password: → vuelve a escribir la nueva contraseña para confirmarla.
WarningImportante: la contraseña no se muestra en pantalla

Cuando escribes una contraseña en la terminal, no aparece ningún carácter en pantalla.

No verás letras, números, puntos ni asteriscos mientras escribes.

Aunque parezca que no estás escribiendo nada, la terminal sí está registrando la contraseña. Escribe la contraseña normalmente y presiona Enter al terminar.

Recomendaciones para la nueva contraseña

Se recomienda que la nueva contraseña tenga al menos:

  • 12 caracteres.
  • Una letra mayúscula.
  • Una letra minúscula.
  • Un número.
  • Un carácter especial, por ejemplo: !, @, #, $, %, *.

No uses contraseñas fáciles de adivinar, como nombres propios, fechas de nacimiento, nombres de mascotas o combinaciones simples como 123456, password o qwerty.

Una vez realizado correctamente el cambio, la contraseña temporal dejará de utilizarse. En las siguientes conexiones al servidor deberás ingresar utilizando tu nueva contraseña.

Cambiar la contraseña posteriormente

Si posteriormente deseas cambiar o renovar tu contraseña, puedes hacerlo desde una sesión activa en el servidor utilizando el comando:

passwd

El sistema solicitará primero tu contraseña actual:

Current Password:

Después solicitará la nueva contraseña:

New password:

Finalmente pedirá que escribas nuevamente la nueva contraseña:

Retype new password:

El proceso se verá aproximadamente así:

$ passwd

Changing password for user usuario.
Current Password:
New password:
Retype new password:

En este caso:

  1. Current Password: → escribe tu contraseña actual.
  2. New password: → escribe la nueva contraseña.
  3. Retype new password: → vuelve a escribir la nueva contraseña para confirmarla.
WarningRecuerda

Al utilizar passwd, las contraseñas tampoco se muestran en pantalla mientras las escribes.

Aunque parezca que no estás escribiendo nada, la terminal sí está registrando la contraseña. Esto es normal.

Si el cambio se realiza correctamente, a partir de ese momento deberás utilizar la nueva contraseña para ingresar al servidor.

Creación de una llave SSH

Aunque se puede ingresar con contraseña, se recomienda usar una llave SSH. Esto permite conectarse de forma más segura y evita escribir la contraseña cada vez que se entra al servidor.

Una llave SSH consiste en dos archivos:

  • Una llave privada, que permanece en tu computadora.

  • Una llave pública, que se copia al servidor.

La llave privada no debe compartirse nunca.

Para crear una llave SSH, ejecuta en tu computadora local:

ssh-keygen -t ed25519 -C "mi_llave_beagle"

El sistema preguntará dónde guardar la llave. Puedes presionar Enter para aceptar la ubicación por defecto.

Después preguntará si deseas agregar una frase de seguridad (passphrase). Es recomendable usar una, aunque también puedes dejarla vacía presionando Enter.

La llave se guardará normalmente en:

~/.ssh/id_ed25519

Y la llave pública en:

~/.ssh/id_ed25519.pub

Copiar la llave SSH al servidor

En macOS y Linux

Puedes copiar tu llave pública al servidor con:

ssh-copy-id <usuario>@<servidor>

Ejemplo:

ssh-copy-id usuario@beagle.ib.unam.mx

Después de ingresar tu contraseña una última vez, la llave quedará registrada en el servidor.

Para probar la conexión, usa:

ssh <usuario>@<servidor>

Si todo está configurado correctamente, podrás ingresar sin escribir la contraseña del servidor.

En Windows PowerShell

En Windows, si ssh-copy-id no está disponible, puedes copiar la llave pública con este comando desde PowerShell:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh <usuario>@<servidor> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Ejemplo:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh usuario@beagle.ib.unam.mx "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Después puedes probar el acceso con:

ssh usuario@beagle.ib.unam.mx

Enviar archivos al servidor con scp

El comando scp permite copiar archivos de forma segura entre tu computadora y el servidor usando SSH.

La estructura general para enviar un archivo desde tu computadora al servidor es:

scp archivo_local <usuario>@<servidor>:/ruta/en/el/servidor/

Ejemplo:

scp datos.fasta usuario@beagle.ib.unam.mx:/home/usuario/

Esto copia el archivo datos.fasta desde tu computadora hacia la carpeta /home/usuario/ en el servidor.

También puedes enviar archivos a una carpeta específica de trabajo:

scp datos.fasta usuario@beagle.ib.unam.mx:/home/usuario/proyecto/datos/

Descargar archivos del servidor a tu computadora

Para copiar un archivo desde el servidor hacia tu computadora, se invierte el orden:

scp <usuario>@<servidor>:/ruta/en/el/servidor/archivo .

Ejemplo:

scp usuario@beagle.ib.unam.mx:/home/usuario/resultados/arbol_final.tree .

El punto final . indica que el archivo se descargará en la carpeta actual de tu computadora.

También puedes indicar una carpeta específica de destino:

scp usuario@beagle.ib.unam.mx:/home/usuario/resultados/arbol_final.tree /Users/mi_usuario/Downloads/

Copiar carpetas completas

Para copiar una carpeta completa se usa la opción -r, que significa recursivo.

Enviar una carpeta al servidor:

scp -r mi_proyecto <usuario>@<servidor>:/home/usuario/

Descargar una carpeta desde el servidor:

scp -r <usuario>@<servidor>:/home/usuario/resultados .

Uso de scp con un puerto diferente

Si el servidor usa un puerto SSH diferente al puerto estándar 22, se debe usar la opción -P.

Ejemplo para conectarse usando el puerto 14420:

scp -P 14420 archivo.txt <usuario>@<servidor>:/home/usuario/

Para descargar desde un servidor con puerto personalizado:

scp -P 14420 <usuario>@<servidor>:/home/usuario/resultados.txt .

Recomendaciones generales de seguridad

No compartas tu contraseña ni tu llave privada SSH.

No guardes contraseñas en archivos de texto sin protección.

Usa contraseñas largas y diferentes a las de otros servicios.

Cuando termines de trabajar en el servidor, puedes cerrar la sesión con:

exit

También puedes cerrar la conexión presionando:

Ctrl + D

Clientes SSH y SFTP recomendados

Aunque es posible conectarse al servidor directamente desde la terminal usando ssh y scp, algunas personas pueden preferir usar programas con interfaz gráfica. Estos clientes facilitan guardar conexiones, transferir archivos mediante ventanas, arrastrar y soltar carpetas, o conectarse desde dispositivos móviles.

El uso de estos programas es opcional. Para la mayoría de los análisis bioinformáticos será necesario aprender a usar la terminal, pero los clientes gráficos pueden ser muy útiles para transferir archivos o administrar carpetas de manera visual.

Programa Sistema operativo Gratuito SSH terminal Transferencia SFTP Recomendado para
Terminal / OpenSSH Windows, macOS, Linux Sí, mediante scp Uso general del servidor
PuTTY Windows No como interfaz gráfica principal Usuarios de Windows que quieren una terminal SSH sencilla
FileZilla Windows, macOS, Linux No Transferir archivos de forma gráfica
WinSCP Windows No como terminal principal Transferir archivos en Windows
Cyberduck Windows, macOS Sí / donativo No Transferir archivos en macOS o Windows
Termius Windows, macOS, Linux, iOS, Android Plan gratuito y planes de pago Conectarse desde computadora, iPad o celular
MobaXterm Windows Versión gratuita y versión de pago Usuarios de Windows que quieren terminal y transferencia en una sola ventana
Visual Studio Code + Remote SSH Windows, macOS, Linux Manejo de archivos remotos desde el editor Editar scripts directamente en el servidor