Conseguí con éxito SimpleSSHD corriendo en mi OnePlus 7T y puedo SSH en el teléfono bien y también puedo conectar usando WinSCP. Sin embargo, cada vez que intento transferir un archivo, obtengo un error 127, que aparentemente significa que el comando scp no fue encontrado. Puedo confirmar desde el CLI que cree que scp no existe. ¿Pero eso no viene con SimpleSSHD? ¿Me estoy perdiendo algo con la instalación? Debo añadir que estoy transfiriendo archivos a /sdcard/*.
Respuesta
¿Demasiados anuncios?Después de hablar con el autor de la aplicación, parece que es un problema que puede no resolverse, pero confirmó que tuvo que hacer algunas cosas raras para conseguir que scp funcionara y las actualizaciones de Android probablemente lo han roto. Así que terminé usando Termux en su lugar y escribí algo de documentación al respecto, por si alguien se encuentra con esto más adelante.
Configuración del servidor SSH de Termux Android
Configuración de SSH
-
Descargar e instalar Termux por teléfono
-
Habilitar los permisos de almacenamiento de archivos para la aplicación (tuve que hacerlo manualmente)
-
Inicie la aplicación y ejecute los siguientes pasos en la aplicación
-
Instalar dropbear y openssh
pkg upgrade pkg install openssh # When OpenSSH asks about overwriting your local config file, answer N to keep the local file
-
Ejecute el comando
passwd
para generar una contraseña de acceso -
Inicie el servidor SSH
sshd
- NOTA Para detener el servidor SSH, ejecute lo siguiente
pkill sshd
- NOTA Para detener el servidor SSH, ejecute lo siguiente
Ref: https://www.crisisshelter.org/install-ssh-in-termux-openssh/
Configuración de la autenticación basada en claves (Windows)
Generar claves
-
Descargar https://www.puttygen.com/
-
Ejecutar puttygen
-
Selecciona:
- RSA
- Bits: (2048 o 4096 para una mejor codificación)
-
Haga clic en Generar
-
Mueve el ratón en el espacio en blanco del programa
-
Copie la clave pública para pegarla en el archivo authorized_keys de OpenSSH y guárdela en un archivo llamado
authorized_keys
-
NOTA: El resultado debería ser el siguiente
ssh-rsa 1231AD_REALLY_LONG_KEY_HERE_FG123= rsa-key-20220806
-
-
Guarde la clave privada como
id_rsa.ppk
Enviar la clave pública al teléfono
- Conéctate a la IP del teléfono usando WinSCP en el puerto
8022
- Introduzca un nombre de usuario en blanco y, a continuación, la contraseña establecida anteriormente
- Cambiar manualmente a
$HOME/.ssh/authorized_keys
(Nota, la ubicación del directorio de inicio puede ser diferente, así que utilice lo que muestra su ruta) - Transferir el
authorized_keys
creado anteriormente a esta carpeta
Tecla de configuración en Kitty/Putty
- Configure la conexión SSH como de costumbre, asegurándose de utilizar el puerto
8022
y la IP del teléfono - Ir a
Connection->SSH->Auth
y seleccione elid_rsa.ppk
archivo guardado de puttygen - Asegúrese de volver a
Session
para nombrar y guardar la conexión - Haga clic en
Open
para conectar - Hit
enter
para omitir el nombre de usuario y utilizará el certificado para autenticar
Clave de configuración en WinSCP
- Configurar un
New Site
mediante la opción situada en la parte superior de la lista de conexiones - Seleccione
SCP
como el protocolo de archivos - Introduzca la IP y el puerto del teléfono
8022
- Haga clic en
Advanced
y navegar hastaSSH->Authentication
- Seleccione el
id_rsa.ppk
generado desde puttygen y haga clic enOK
- Haga clic en
Save
y nombrar la conexión - Haga clic en
Login
- Haga clic en
OK
para evitar la solicitud de nombre de usuario y utilizará el certificado para autenticar
Desactivar la autentificación por contraseña
-
Después de asegurarse de que puede iniciar sesión con el certificado, vuelva a iniciar sesión en el teléfono mediante SSH
-
Editar el archivo de configuración de sshd
nano $PREFIX/etc/ssh/sshd_config
-
Modifique la siguiente línea para esta configuración:
PasswordAuthentication no
-
Guarde los cambios y salga con
CTRL+X
-
Por si acaso, establece una contraseña aleatoria
passwd # Enter some RANDOM_STRING
-
Ahora puede salir de la sesión de shell
Registros de Termux
El demonio SSH se registra en el registro del sistema Android, puede verlo ejecutando logcat -s 'sshd:*'
. Puedes hacerlo desde Termux o ADB.