gpt4 book ai didi

java - 独立运行代码和 war 中的代码时的不同结果

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:00 26 4
gpt4 key购买 nike

如果我将 java 文件放入任何文件夹(不是通过 war 运行),下面的代码运行得很好

new ProcessBuilder("ssh b15h278@my.host.com \"echo success\"").start();

我得到了“成功”。但是如果我将代码部署为 war ,它会给我“权限被拒绝(公钥)”。我已经在目标主机中注册了 key 。

最佳答案

要建立有效的 SSH 连接,您需要尝试登录的系统上的公钥和本地系统上的私钥。默认情况下,“ssh”命令将在“$HOME/.ssh”中查找私钥

我怀疑这里的问题是,当您从 webapp 运行“ssh”时,您实际上是以不同的用户身份运行的(例如“tomcat”),而 $HOME 指的是一个没有“.ssh”子目录的目录。

尝试给“ssh”一个明确的“-i”参数和私钥文件的(绝对)路径。另外,请确保该文件可由“tomcat”用户(或其他用户)读取。 (通常的做法是在您的“$HOME/.ssh”目录上设置权限,以便其他用户/组无法读取它。)

关于java - 独立运行代码和 war 中的代码时的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35224512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com