En este post te mostraré cómo instalar un servidor SSH en Termux para que puedas iniciar sesión de forma remota.
La ventaja de esto es que podrás conectarte desde una PC u otro lugar en donde puedes conectar un teclado (ya que con el teclado del teléfono es complicado)
Vamos a usar el servidor openssh y veremos la forma de autenticar usando contraseña, o usando claves públicas y privadas.
Nota: recuerda configurar e instalar Termux, y no olvides ejecutar termux-setup-storage
como en el tutorial que cito.
Comenzamos actualizando los repositorios, e instalando el paquete openssh:
pkg upgrade
pkg install openssh
En ambos casos, si pregunta, elegimos que sí escribiendo la letra Y
.
También es necesario instalar net-tools
y procps
con:
pkg install net-tools
(averiguar IP)
pkg install procps
(matar procesos)
pkg install nano
(para editar archivos)
La configuración de OpenSSH está en $PREFIX/etc/ssh/sshd_config
y podemos verla navegando con cd $PREFIX/etc/sshd
y después usar cat sshd_config
:
El parámetro PasswordAuthentication
está en yes
, así que podemos ingresar con un usuario y contraseña en lugar de claves públicas y privadas.
Más adelante vamos a ver cómo cambiar este parámetro, ya que la autenticación con contraseña no es recomendada.
Para iniciar el demonio, es decir, escuchar conexiones, se ejecuta:
sshd
Para matarlo o detenerlo, se usa:
pkill sshd
pkill
viene con procps
, por eso era necesario instalarlo.
Nota: se escucharán conexiones en el puerto 8022.
Ya estamos escuchando conexiones SSH, pero todavía no sabemos nuestro usuario, contraseña e IP.
Averigua tu usuario escribiendo:
whoami
Ahora ponle una contraseña segura ejecutando:
passwd
Finalmente mira cuál IP tienes, escribiendo:
ifconfig
(este comando viene con las net-tools)
Cuando tengas esos datos ya puedes conectarte desde otro lugar. Si usas linux en el terminal cliente ejecuta:
ssh TU_IP -p 8022
En caso de que uses Putty, rellena los campos y listo.
Cualquiera de los dos métodos, te llevará al proceso de autenticación, escribe el usuario y la contraseña y ya está.
Ya puedes administrar tu “servidor” de Linux sobre Android de manera remota.
Si muestra un aviso sobre “the server’s host key” haz click en Sí
Nota: no se recomienda para nada usar autenticación con usuario y contraseña, lo mejor y más seguro es usar claves públicas y privadas.
Este método es el que se recomienda, pues agrega más seguridad y evita ataques de fuerza bruta.
Comenzamos preparando nuestro dispositivo creando el folder .ssh y el archivo authorized_keys
; además de darles permiso.
Esto lo puedes hacer desde tu dispositivo o usando un cliente SSH (es decir, vamos a configurar las claves, pero por el momento, antes de configurarlas, podemos usar todavía la autenticación no segura)
Los comandos son:
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
El siguiente paso es generar un par de claves usando Putty como se ve en este tutorial detallado.
Si seguiste bien el tutorial de generación de claves públicas y privadas, tu conexión de Putty debe verse así (fíjate en la parte superior, dice Authenticating with public key):
Ahora que ya tienes autenticación por clave pública y privada, desactiva (lo recomiendo altamente, por la seguridad) la autenticación por contraseña.
Navega hasta $PREFIX/etc/ssh/
y modifica el archivo sshd_config
usando si quieres nano sshd_config
; en donde dice PasswordAuthentication
escribe no
.
Guarda los cambios (CTRL + O
, luego ENTER
si usas nano) y reinicia el servidor SSH; esto hazlo desde la app de Termux pues si lo haces por SSH la conexión se romperá (obviamente)
Detén el servidor con pkil sshd
y después vuelve a iniciarlo con sshd
.
Así es como termina este tutorial; recuerda que tengo más material interesante sobre Termux, Linux y Android en mi blog.
Finalmente, dejo una referencia a la wiki de Termux.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
Hola, podría combinar la generacion de claves con otro articulo que titulas "cifrado asimetrico con GPG en linux" para comunicar dos tablets con termux? sería necesario dos generaciones de par de claves?
Hola, me parece que esto te puede servir: https://parzibyte.me/blog/2018/08/20/autenticacion-ssh-clave-publica-privada/
Saludos :)