ssh后更改用户并执行多个命令

ssh后更改用户并执行多个命令

我有一个简单的 shell 脚本,用于以普通用户身份登录,并且这个普通用户有一个 shell,可以切换到具有 sudo 权限的用户。但是,我无法让它工作:

sshpass -p PASS ssh -t -o StrictHostKeyChecking=no user@host "sudo -s -u SUDOUSER;sudo cp -r "${STAGING}/${THEME}/*" /opt/themes/"${THEME}/.";exit;rm -rf "${STAGING}/*""

这样就可以正常登录到服务器,然后切换到 SUDOUSER,但实际上它只是停在那里,并在主机上提示我作为 SUDOUSER(基本上是让我登录到服务器上的 SUDOUSER 并等待命令)

我需要运行脚本并返回到我的原始终端并完成 cp 和 rm 任务。

有人可以帮忙吗?

谢谢

答案1

这似乎主要是引用问题。试试这个:

sshpass -p PASS ssh -t -o StrictHostKeyChecking=no user@host \
    "sudo -s -u SUDOUSER '\
        cp -r \"${STAGING}/${THEME}/*\" /opt/themes/\"${THEME}/.\"; \
        rm -rf \"${STAGING}/*\"'"

我假设$STAGING$THEME是您本地 shell 中的变量。

相关内容