命令有效,但从脚本执行时出现权限被拒绝错误

命令有效,但从脚本执行时出现权限被拒绝错误

下面的命令在我的本地主机上运行良好,并且得到了所需的输出。见下文

$ ssh -o ConnectTimeout=7  -o BatchMode=yes [email protected] "echo WORKS;exit"
Output:
WORKS

test.sh现在,我将此命令放在具有足够执行权限的脚本文件中

$ cat test.sh
segment=$(ssh -o ConnectTimeout=7  -o BatchMode=yes [email protected] "echo WORKS;exit")
echo "SEGMENT $segment"

我没有得到所需的输出。事实上我收到以下错误:

$ ./test.sh
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
SEGMENT

我正期待着

SEGMENT WORKS

现在,权限被拒绝错误消失了,但是

您能建议可能是什么问题吗?

答案1

问题是我使用了别名

alias ssh=ssh -i /app/private_key

存储在用户配置文件中。但是,此设置不会在 shell 脚本中生效(请参阅这里例如),所以我必须显式调用

ssh -i app/private_key

在脚本中。这解决了这个问题。

相关内容