Фон:

Фон:

Фон:

у меня естьместныйскрипт, который необходимо выполнитьлокальнокак предварительное условие для создания SSH-подключения.

Скрипт уже работает, но в настоящее время пользователям необходимо запустить скрипт, а затем установить SSH-соединение — два шага.Я бы хотел, чтобы это произошло одним шагом..

Пример выполнения скрипта с точки зрения пользователя:

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

$ ssh [email protected]

Цель/Проблема:

Я хочу, чтобы этот скрипт разрешал ввод данных пользователем при запуске из конфигурации SSH.

Например, приведенная ниже конфигурация ssh выполняет скрипт правильно, но онне позволяет пользователю взаимодействоватьи пользователю никогда не будет показан stdout скрипта:

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

Вопрос:

Есть ли способ заставить этот скрипт работать?интерактивнопри вызове из конфигурации ssh?

решение1

Я не знаю, как это сделать с помощью конфигурации ssh, но довольно распространенным решением является создание скрипта, который устанавливается ранее в PATH. Например

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

Другие распространенные предложения включают создание псевдонима или функции для выполнения той же задачи.

ссылки

Связанный контент