Fundo:

Fundo:

Fundo:

eu tenho umlocalscript que precisa ser executadolocalmentecomo pré-requisito para fazer uma conexão ssh.

O script já está funcionando, mas atualmente os usuários precisam executá-lo e, em seguida, fazer uma conexão ssh – duas etapas.Eu gostaria que isso acontecesse em uma única etapa.

Exemplo de execução de script, da perspectiva dos usuários:

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

$ ssh [email protected]

Objetivo/Problema:

Quero que este script permita a entrada do usuário quando acionado pela configuração do ssh.

Por exemplo, esta configuração ssh abaixo executa o script corretamente, masnão permite que o usuário interajae o usuário nunca vê nenhuma saída padrão do 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

Pergunta:

Existe alguma maneira de fazer esse script funcionarinterativamentequando chamado da configuração ssh?

Responder1

Não conheço uma maneira de fazer isso com a configuração do ssh, mas uma solução bastante comum é criar um script instalado anteriormente no arquivo PATH. Por exemplo

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

Outras sugestões comuns envolvem a criação de um alias ou função para fazer a mesma coisa.

links

informação relacionada