Acceder al entorno de usuario de termux desde otras consolas

9

Recientemente comencé a usar la increíble aplicación de terminal Termux y el entorno Linux. Proporciona una gran cantidad de utilidades de terminal con funciones completas. Sería genial poder acceder a estas utilidades desde otras consolas, especialmente cuando se conecta a través de ssho adb shell. Me las he arreglado para hacer algunas funciones disponibles mediante el establecimiento de mi PATHy LD_LIBRARY_PATHvariables de entorno a los mismos valores utilizados por el caparazón de Termux, pero hay problemas de permisos y parece desordenado.

¿Hay alguna manera de ingresar a una sesión de Termux? Termux no parece proporcionar un paquete de servidor ssh. Incluso si lo hiciera, presumiblemente ese servidor, y por lo tanto la sesión ssh otorgada por él, se ejecutaría como un usuario separado del usuario termux, lo que resultaría en problemas de permisos similares.

¿Hay alguna forma compatible de acceder al entorno de usuario de Termux desde otras consolas?

intuido
fuente

Respuestas:

11

Termux proporciona el opensshpaquete, que contiene tanto el sshcliente como el sshdservidor.

Instale el paquete con:, apt install opensshluego inicie el servidor con sshd: se ejecutará en el puerto 8022 de forma predeterminada, así que conéctese a él ssh -p 8022 DEVICE_IPy podrá encontrar el dispositivo wifi ip usando ip addr list wlan0.

La autenticación de contraseña no es compatible, por lo que debe configurarla $HOME/.ssh/authorized_keys.

Después de conectarse, se ejecutará como el usuario normal de Termux con las variables de entorno configuradas correctamente.

fornwall
fuente
1
Wow, realmente deberían mencionar eso en la descripción del paquete, que simplemente dice que es un "Shell seguro para iniciar sesión en una máquina remota".
intuido
¿Por qué no puedo conectarme desde un cliente remoto con ssh en un teléfono inteligente que tiene sshd termux y está conectado a internet con una ip (que obtengo de curl ifconfig.me) en el puerto 8022. ¿El problema está relacionado con el proveedor de internet, que hay muchos clientes en una ip?
user3123159
55
La autenticación de contraseña es compatible. Debe ejecutar passwdpara establecer una nueva contraseña para su servidor SSH. Sin embargo, lo que no funciona son los nombres de usuario (es decir, todos pueden iniciar sesión con cada nombre de usuario con esa contraseña), AFAIK.
MAChitgarha
3

Necesita instalar opensshen termux ejecutando

pkg install openssh

y luego, en el dispositivo desde el que desea ssh, generar una clave de identificación pública,

ssh-keygen

y simplemente confirme y baje cualquier cosa, luego haga

cat ~/.ssh/id_rsa.pub

y copie la salida ~/.ssh/authorized_keysy reinicie el sshdservidor e intente ssh,

Si encuentra algún error, verifique el authorized_keysarchivo y asegúrese de que su clave pública esté en una sola línea.

Debe realizar estos pasos anteriores porque Termux sshdno admite inicios de sesión con contraseña (es decir, ssh user@ip_addressingresar una contraseña)

tienes que ssh en termux usando

ssh termux-ip-here -p 8022
Zachary Martin Duncan
fuente
2

De rodillas y reverencia

Ip_Address_Of_Remote_Host = 192.168.1.20

(Suponiendo que haya generado una clave en la máquina termux usando

ssh-keygen -t rsa

Hay un espacio entre ssh-keygen y -t y copió la clave a Remote_Host usando los detalles de inicio de sesión de esas máquinas

ssh-copy-id [email protected]).

Hay un espacio entre ssh-copy-id y user

Ahora debería poder iniciar sesión en el host remoto sin usar una contraseña.

ssh [email protected]

La clave rsa generada anteriormente no es la clave que coloca en el archivo autorizado_claves en la máquina termux.

El problema es obtener el

id_rsa.pub

archivo de su máquina remota al termux

~ / .ssh / optional_keys

archivo en el sistema local (teléfono) la solución que utilicé fue scp, este comando confunde a mucha gente pero si se ve desde la posición de que es solo un comando cp, su misticismo desaparece

cp file_to_copy where_to_copy_file

Este comando se ejecuta desde la máquina Termux (teléfono)

scp [email protected]: /home/user/.ssh/id_rsa.pub ~ / .ssh / optional_keys

Hay un espacio entre id_rsa.pub y ~ /

La ruta a su directorio .ssh puede ser diferente, solo asegúrese de que sea la ruta correcta que ingrese en el comando anterior.

Si aún tiene problemas para iniciar sesión, navegue hasta

/data/data/com.termux/files/usr/etc/ssh/sshd_config file

Activa estos dos pares de teclas

ChallengeResponseAuthentication no

Autenticación Pubkey sí

Michael Hughes
fuente
Para cualquiera con un ligero conocimiento de SSH, esto debería ser sencillo para aquellos que son nuevos en las rutas GNU / Linux en las que debe centrarse. Mi próximo puerto de escala es ver si es posible el reenvío X, entonces abre la posibilidad de usar los trajes de productividad en su escritorio, pero escribiendo en la máquina termux, permítame expandirlo, podrá usar el software LibraOffice en la máquina termux pero si se muestra en el escritorio sin retraso / latencia, este es el poder de GNU / Linux.
Michael Hughes
2

Estos son comandos de Android para ejecutar en Termux y configurar un cliente y servidor SSH, lo que permite conectarse desde su escritorio a su Android y viceversa. Esto no cubre el servidor SSH y el cliente configurado en su computadora de escritorio.

Usando el servidor SSH https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

Aquí puede crear una contraseña para sus claves y usarla para conectarse a su computadora, si desea una contraseña. De lo contrario, déjelos en blanco y no se requieren contraseñas, excepto la contraseña de su computadora de usuario DESKTOP.

¿Cómo puedo configurar el inicio de sesión SSH sin contraseña? /ubuntu/46930/how-can-i-set-up-password-less-ssh-login

ssh-keygen -b 4096 -t rsa

Esto le permite conectarse desde su ANDROID a su DESKTOP por conexión SSH sin su contraseña de usuario de ANDROID (ya que las contraseñas no son compatibles con el servidor termux sshd)

3 pasos para realizar el inicio de sesión SSH sin contraseña con ssh-keygen y ssh-copy-id https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using- ssh-keygen-ssh-copy-id

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Esto le permite conectarse desde su ESCRITORIO a su ANDROID mediante una conexión SSH sin su contraseña de usuario de ANDROID (si desea usar la contraseña de usuario de su computadora, omita este comando)

  1. Primera opción Acceso al entorno de usuario termux desde otras consolas Acceso al entorno de usuario termux desde otras consolas

    scp [email protected]:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. Segunda opción ¿Cómo agrego claves SSH al archivo autorizado_claves? /ubuntu/46424/how-do-i-add-ssh-keys-to-authorized-keys-file

    cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    

Scripts y notas para configurar y usar SSHd en su dispositivo Android usando Termux https://github.com/tomhiggins/TermuxSSHDsetup

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh frase de contraseña en blanco, pero todavía la solicito /server/845623/ssh-blank-passphrase-but-still-asking-for-it

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/known_hosts
chmod 600 ~/.ssh/authorized_keys

Inicie el servidor ejecutando sshd (que lo iniciará en el puerto predeterminado 8022) y ejecútelo logcat -s 'syslog:*'para ver la salida del registro del proceso del servidor. Ejecute pkill sshd para detener el servidor.

logcat -s 'syslog:*'
pkill sshd
sshd

Finalmente, conectando de uno a otro y viceversa:

Conexión desde su ANDROID a su DESKTOP (el uso de su contraseña de usuario DESKTOP puede ser opcional)

ssh [email protected]

Conexión desde su ESCRITORIO a su ANDROID (no debe usar su contraseña de usuario de ANDROID)

Como Termux es un sistema de usuario único, puede conectarse como cualquier usuario; independientemente de su nombre de usuario especificado, iniciará sesión como el único usuario de Termux disponible.

El binario Termux sshd no admite inicios de sesión de contraseña, por lo que es necesario autorizar una clave ~/.ssh/authorized_keysantes de conectarse. Use ssh-keygen para generar uno nuevo si lo desea.

ssh -p 8022 -i ~/.ssh/id_rsa IP.OF.YOUR.ANDROID

(ANDROID) Si aún tiene problemas para iniciar sesión, navegue hasta el archivo y active estos dos pares de teclas: /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

Extra: Bloquear y desbloquear el sistema de archivos de solo lectura a lectura-escritura y viceversa.

Cómo copiar archivos al directorio de datos de un emulador de Android con 'adb push' https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-only-error

mount -o rw,remount rootfs /

¡Revierta los cambios nuevamente después de terminar los cambios!

cat /proc/mounts
mount -o ro,remount rootfs /
usuario
fuente