Usando LineageOS nativo SSHD sobre ADB

Tengo la mayor parte del camino para hacer que sshd nativo funcione a través de usb (principalmente para shell y winscp), pero es muy turbio y aún no lo he logrado. Quiero usar el sshd integrado, no descargar una aplicación para ello.

Lineageos tiene un SSHD incorporado y ADB permite el reenvío desde el host local: XXXX al teléfono en el puerto 22. Tengo un sshd_configarchivo listo (contraseña por ahora, RSA más tarde) y Terminal + su funcionando. Por prueba y error, encontré los archivos sshd-start o start-sshd y probablemente ya haya recorrido la mayor parte del camino. Pero es difícil reproducir un enfoque de prueba y error y todavía no lo he logrado.

Lo más lejos que tengo es que puedo ejecutar ssh (cliente) en el teléfono y al menos intentará conectarse a sí mismo (en otra ventana de terminal), pero aún no llega por completo a un indicador de shell. Dio errores en /var/run/etc y al faltar un directorio 'vacío' que creé manualmente y parece ayudar, pero realmente no sé si esa es la forma correcta o la mejor de hacerlo.

Suponiendo que tengo un archivo de configuración válido y una instalación limpia sin cambios, ¿cuáles son los pasos básicos desde el principio, así que puedo habilitar sshd nativo, iniciarlo/detenerlo manualmente (no iniciado con el sistema) y acceder a él a través de adb?

Me gustaría usar /sdcard/sshdata para cualquier clave/configuración, de modo que se conserven durante la instalación y, por el momento, la contraseña sobre adb solo a través de usb (no WiFi). Estoy feliz de modificar algunos archivos relacionados con sshd en / system y probablemente necesite hacerlo, pero no sé cuál debo cambiar.

¿Cuál es la receta más simple para tener sshd disponible para que pueda encenderlo y conectarme cuando sea necesario?

Respuestas (1)

AFAIK con LineageOS 14.1 (tengo un FairPhone 2 rooteado), estásshd habilitado de forma predeterminada y listo para usar. Su archivo de configuración es /system/etc/ssh/sshd_configel que apunta al /data/ssh/almacenamiento de claves. Supongo que puedes reconfigurarlo para usar /sdcard/. En teoría , /datadebería conservarse entre actualizaciones del sistema, aunque no tengo mucha experiencia para confirmarlo. El daemon debe iniciarse manualmente (esto también genera el par de claves del servidor; tenga en cuenta que start-sshno se inicia sshden segundo plano, por lo tanto &):

$ adb root
phone # /system/bin/start-ssh & 

Como alternativa, es posible que desee configurar otra sshdinstancia como se explica aquí .

Para sshdcomenzar en cada arranque (todavía no lo he probado), una opción es usar Termux:Boot . ¡Tenga en cuenta que tener un daemon siempre funcionando puede agotar su batería!

En cuanto a ejecutar ADB y SSH, dices

ADB permite el reenvío desde el host local: XXXX al teléfono en el puerto 22

Tengo entendido que esto no es correcto (a menos que se refiera a reenviar desde una máquina de desarrollo a otro host al que está conectado el teléfono ), ya que no veo cómo adbdpuede manejar las conexiones cifradas. Una prueba de detección rápida ngrepmuestra que mi conexión Wi-Fi en el puerto 5555 es texto claro.

De lo contrario, asegúrese (supongo que ya lo sabe, pero repetita iuvant ...) que en su teléfono

  1. Developer optionsestán habilitados
  2. Developer options -> Root accessestá configurado en "ADB" o "Aplicaciones ADB"
  3. Developer options -> ADB over networkestá habilitado

Luego, en la terminal de tu computadora, el siguiente comando debería ponerte en marcha:

$ adb connect <your-android-host-name>
$ adb shell

... espere una conexión insoportablemente lenta, no cifrada :-(

To have sshd start at each boot (I still haven't tried), one option is to use Termux:BootEntonces, ¿no hay un inicio automático nativo para SSHD en Lineage?
@Suncatcher, AFAIK, ¡no! esto todavía
(ay, conexión rota) ... sigue siendo el caso con LOS17.1