将多个用户输入传递给 ssh 远程命令

问题描述 投票:0回答:0

我正在尝试制作一个脚本来创建 ssh 连接并执行需要多个用户交互的远程命令。远程脚本需要两个顺序的密码。另一个 ssh 连接和一个用于 git pull (ssh-) 命令的连接。

本地脚本(手动运行):

#!/bin/bash

echo -n "Password 1: "
read -s password_1
echo

echo -n "Password 2: "
read -s password_2
echo

result=$(ssh -t user@remote_host "/path/to/remote_script.bs" 2>&1 <<EOF
echo "$password_1"
echo "$password_2"
EOF
)

echo "$result"

远程脚本(remote_script.bs):

# expects first password
ssh -M -S ".ssh_socket" -fNT "fixed_user@git_server" -L 1234:192.168.24.99:22
# expects seconds password; git is configured to pull via localhost portforwarding of ssh connection above
git --git-dir "path_to_git/.git" pull

远程交互忽略回显的密码并匆忙进入失败的身份验证。

由于环境多样,我无法使用 expect 或 sshpass。

ssh interactive git-pull remotecommand
© www.soinside.com 2019 - 2024. All rights reserved.