2 votos

¿Cómo puedo usar la Autenticación de Clave Pública para SFTP en el Explorador de Archivos ES?

Quiero usar SFTP para transferir archivos de Android a una caja de Linux usando autenticación de clave pública en lugar de un nombre de usuario y contraseña tradicionales. Idealmente me gustaría usar Explorador de archivos ES (como lo uso para todo lo demás).

¿Alguien puede decirme cómo generar un par de claves públicas/privadas adecuadas para permitir que el Explorador de Archivos ES se autentique con el servidor SFTP?

  • Cuando intento conectarme a un servidor SFTP con una clave privada, puedo seleccionar un archivo que contenga la clave, pero cuando hago clic en OK, obtengo el mensaje "Error, no puedo encontrar el servidor SFTP(mysite.com)".
  • Sé que el Explorador de Archivos ES es capaz de usar SFTP porque funcionó cuando usé la autenticación de la contraseña. Ahora que he desactivado las contraseñas en el servidor, reporta "Fallo en la entrada". Esto puede ser causado por: Auth fail", que es más o menos lo que yo esperaría.
  • Sé que el teléfono Android todavía tiene conectividad con el servidor SSH, porque puedo conectarme a él usando Connectbot con autenticación de clave pública.
  • Sé que SFTP sigue funcionando sobre SSH, porque puedo conectarme a él y transferir archivos usando BitKinex ejecutándose en un PC.
  • No estoy ejecutando un firewall en el teléfono Android.
  • Cuando el teléfono no se conecta, el servidor SFTP registra Received disconnect from my.ip.ad.dr: 3: com.jcraft.jsch.JSchException: Auth fail [preauth]

He autenticado con éxito con el servidor utilizando claves de 2048 bits generadas por PuTTY KeyGen, tanto en el formato .ppk de PuTTY (en el propio PuTTY) como exportadas al formato OpenSSH (para BitKinex). Estas claves no funcionaron; tampoco lo hizo la exportación al formato SSH.com. También tengo OpenSSH / OpenSSL disponible en la caja de Linux como una alternativa para la generación de claves. Connectbot maneja sus propias claves, pero no parece ser capaz de exportar la clave privada (opción en gris).

Supongo que el problema podría ser que estoy usando el formato de archivo de la llave equivocado, o que tengo las opciones equivocadas establecidas en la propia llave. No he podido encontrar ninguna instrucción en el Explorador de Archivos ES documentación o en Google.

No debería hacer la diferencia, pero estoy usando un Huawei Ascend P2 con Android 4.1.2. No está rooteado (y no lo voy a hacer). La caja de linux es una Pi de frambuesa con OpenSSH 6.0p1 Debian-4+deb7u2.

3voto

Crayon Puntos 111

Su pregunta me hizo tratar de usar la misma configuración.

Solución

Genera tu par de claves en formato de archivo de claves OpenSSH, usé mi estación de trabajo de linux:

 ssh-keygen -t rsa -C "KEYNAME"

(Dejé la frase de contraseña vacía pero creo que funcionará con ella también, agregue la clave pública a su anfitrión:

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

(Asumiendo que es la misma máquina a la que quieres conectarte) Copia la clave privada id_rsa a tu teléfono y usa esa. :)

Encontré la pista en Logcat:

 W/System.err(27250): com.jcraft.jsch.JSchException: invalid privatekey: /sdcard/key.ppk

y esto responder a me llevó en la dirección correcta.

Cómo copiar la clave privada de connectBot solución de exportación

Sólo se pueden copiar las claves privadas sin frase de contraseña, así que puedes cambiar la contraseña y dejarla vacía, esta clave NO es compatible con el Explorador de Archivos ES.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X