如何通过 SSH 执行远程 shell 脚本,并通过该脚本中需要密码的命令提示输入密码?

如何通过 SSH 执行远程 shell 脚本,并通过该脚本中需要密码的命令提示输入密码?

我想做这样的事情

ssh [email protected] ./remote_script.sh

Remote_script.sh 的内容

#!/bin/bash
hg pull

这个例子比我实际做的要简单得多。我知道我可以直接通过 ssh 传递 shell 命令,但假设我想运行远程脚本。我也知道 Mercurial 有钩子,但也请忽略这一点,为了简洁起见,我在这里仅使用 Mercurial 作为示例。

这是我期望发生的情况,提示用户输入密码:

[email protected] password: 

这是输出:

ssh [email protected] ./remote_script.sh
remote: Permission denied, please try again.
remote: Permission denied, please try again.
remote: Permission denied (publickey,password).
abort: no suitable response from remote hg!

远程 shell 会话似乎正在向密码输入提示输入某些内容,并在 3 次自动尝试后失败。我真的很希望能够提示到达我的本地 shell 会话。也许那是不可能的。

我不想向存储库提供远程服务器密钥身份验证,我希望每次都提示用户。有什么办法可以做到这一点吗?

答案1

很难从这篇文章中弄清楚到底发生了什么。 hg 命令是否打印密码提示(我对 hg 不熟悉)?

我建议您尝试将-t选项添加到 ssh:

ssh -t [email protected] ./remote_script.sh

相关内容