Fondo:

Fondo:

Fondo:

tengo unlocalscript que necesita ejecutarseen la zonacomo requisito previo para realizar una conexión ssh.

El script ya está funcionando, pero actualmente los usuarios necesitan ejecutarlo y luego realizar una conexión ssh: dos pasos.Me gustaría que eso sucediera en un solo paso..

Ejecución de script de ejemplo, desde la perspectiva de los usuarios:

$ /scripts/generate-mfa-auth.sh
MFA Code: 12345
Configuring authorized_keys...
Success. You can now connect over ssh.

$ ssh [email protected]

Meta / Problema:

Quiero que este script permita la entrada del usuario cuando se activa desde la configuración ssh.

Por ejemplo, la siguiente configuración ssh ejecuta el script correctamente, perono permite al usuario interactuary al usuario nunca se le muestra ninguna salida estándar del script:

Match host bastion* exec "/scripts/generate-mfa-auth.sh"

Host bastion1.local.example.com
 IdentityFile ~/.ssh/my-bastion-ssh-key

Host *local.example.com !bastion1.local.example.com
 IdentityFile ~/.ssh/my-target-ssh-key
 ProxyCommand ssh [email protected] -W %h:%p

Pregunta:

¿Hay alguna manera de que este script funcione?interactivamentecuando se llama desde la configuración ssh?

Respuesta1

No conozco una forma de hacer esto con la configuración ssh, pero una solución bastante común es crear un script que se instala anteriormente en el archivo PATH. Por ejemplo

install -m 0755 -o root -g root /dev/null /usr/local/bin/ssh
cat <<EOF > /usr/local/bin/ssh
#!/usr/bin/env bash

read -p "mfa prompt: " my_input
echo $my_input
/usr/bin/ssh "$@"
EOF

Otras sugerencias comunes implican crear un alias o una función para hacer lo mismo.

Enlaces

información relacionada