
Mi teléfono Android 4.4.2 (es antiguo pero no se puede actualizar) ejecuta un servidor SSH mediante la aplicación SimpleSSHD. Genera una contraseña aleatoria diferente en cada inicio de sesión, por lo que es muy inconveniente para mí como usuario cliente. Por eso me gustaría utilizar la autenticación de clave pública.
Anteriormente generé un par de claves públicas y privadas para acceder a un servidor SSH. Supongo que está bien reutilizar el par de claves, así que copio el archivo de clave pública al teléfono Android:
$ ssh-copy-id -p 2222 192.168.1.87
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/t/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
restorecon: invalid option -- F
usage: restorecon [-nrRv] pathname...
Después de eso, todavía tengo que escribir contraseñas aleatorias generadas por el servidor para poder iniciar sesión.
¿No funciona copiar el archivo de clave pública al teléfono Android?
¿En qué directorio del teléfono Android debe ir el archivo de clave pública?
Gracias.
Respuesta1
Esto no es un problema con Android. Creo que la convención de poner claves ~/.ssh/authorized_keys
es de OpenSSH. No creo que sea parte del estándar (RFC). simpleSSHDtiene una convención diferente:
Inicio rápido
- Instale SimpleSSHD.
En cualquier computadora que se conecte a su dispositivo Android, configure el puerto en 2222. Con OpenSSH, esto se puede hacer poniendo estas líneas en ~/.ssh/config:
Host myphone Port 2222
Inicie SimpleSSHD y en Configuración habilite "Iniciar al arrancar", luego inícielo manualmente por primera vez.
- Crear
authorized_keys
en el directorio de inicio (no usarssh-copy-id
)- Opcionalmente haga .profile
La inferencia de esto es que sus archivos de claves autorizadas ~/authorized_keys
no deberían estarlo ~/.ssh/authorized_keys
.
ssh-copy-id
Parece asumir que cada servidor es un servidor OpenSSH. Como ya configuró su clave pública usando ssh-copy-id
, simplemente iniciaría sesión y ejecutaría:
mv ~/.ssh/authorized_keys ~