背景:

背景:

背景:

我有一個當地的需要執行的腳本本地作為建立 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 配置可以正確執行腳本,但它不允許使用者交互並且用戶永遠不會看到腳本的任何標準輸出:

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

其他常見的建議包括建立別名或函數來執行相同的操作。

連結

相關內容