¿Cómo configuro SSH para que OTP se pueda usar con ssh-copy-id y luego solo se acepta la autorización del par de keys?

Como puede ver en el título de esta publicación, parte de mi confusión puede deberse a la imposibilidad de express la pregunta, así que por favor tengan paciencia conmigo. Esto es lo que estoy tratando de lograr:

pregunta: ¿Hay alguna manera de decirle al daemon SSH, "cuando un dispositivo remoto intenta conectarse a través de SSH, verifique contra authorized_keys, pero si no se ofrece ninguna key, acepte una contraseña de un solo uso para que el usuario pueda usar ssh-copy- id para proporcionarlo para bashs posteriores "?

context: me gustaría poder configurar un server Linux para que un usuario pueda ingresar SSH en el cuadro, pero quiero usar los pares de keys RSA para la authentication. También tengo varios dispositivos de los que quiero poder conectar, así que eso significa proporcionar múltiples pares de keys (no es un problema).

Básicamente, quiero agregar inputs a authorized_keys usando OTP y ssh-copy-id, desde un dispositivo que, en este momento, se le denegaría el acceso (porque aún no ha presentado una key pública). Actualmente tengo que SSH desde una máquina que puede conectarse, editar el file sshd_config para permitir passwords, luego copyr el ID con una contraseña estática, desactivar la authentication de contraseña y reiniciar el daemon. Preferiría una forma de get una OTP del sistema y luego solo usar eso y seguir trabajando …

Cualquier indicador sería apreciada; Gracias

La authentication de key pública está activada por defecto y tiene mayor prioridad que la authentication de contraseña (gestionada por PAM o directamente).

Puede configurarlo en la opción sshd_config UsePAM yes (de forma pnetworkingeterminada en Red Hat), que pospondrá la authentication a PAM; esto se configura en /etc/pam.d/sshd (puede diferir un poco en algunos sistemas).

Para OTP puede usar google_authenticator , o alguna otra implementación abierta de passwords de un solo uso. Hay muchos consejos aquí. Puede intentar search authentication de dos factores, pero básicamente está agregando una línea como esta

  auth requinetworking pam_google_authenticator.so 

en /etc/pam.d/sshd y realice alguna configuration: Arch tiene instrucciones útiles para esto: https://wiki.archlinux.org/index.php/Google_Authenticator

Usar passwords de un solo uso, sin el segundo factor, puede ser un riesgo potencial si se pierde la contraseña o el token de un solo uso. Recomiendo no ir por este path e implementar más bien la authentication de dos factores que solo la contraseña de un solo uso.