我使用部署者将我的代码部署到多个服务器。今天,在启动部署之后,我得到了这个错误:
[Deployer\Exception\RuntimeException (-1)]
The command "if hash command 2>/dev/null; then echo 'true'; fi" failed.
Exit Code: -1 (Unknown error)
Host Name: staging
================
Warning: Identity file /home/user/.ssh/id_rsa not accessible: No such file or directory.
Permission denied (publickey).
首先,我认为这可能与服务器配置有关,因为我将完整的安装转移到了另一个主机提供商。我试图触发对服务器的部署,但在过去几天中部署得很好,但是得到了相同的错误。这很快就把我的怀疑从服务器转到本地。
因为我在docker中运行PHP (Deployer是用PHP编写的),我想这可能与我的ssh代理没有从我的主机操作系统正确转发到docker有关。我通过直接从我的操作系统中使用一个新的PHP安装来验证这一点(如果有帮助的话,Ubuntu)。同样的警告不断出现在日志中。
当使用ssh
命令登录时,一切似乎都很好。我还是不知道这里发生了什么。有什么想法吗?
PS:我还在Deployer的GIT:https://github.com/deployphp/deployer/issues/1507上创建了一个问题
发布于 2019-04-15 23:58:08
我对你所说的图书馆没有经验,但问题从这里开始:
Warning: Identity file /home/user/.ssh/id_rsa not accessible: No such file or directory.
所以让我们把注意力放在这一点上。我能想到的潜在的事情:
user
吗?它说该文件位于:/home/user
。验证这确实是正确的路径。例如,只需ls
文件。如果它不存在,您将得到一个错误:
$ ls /home/user/..ssh/id_rsa如果No such file or directory
不存在,就会抛出它。
id_rsa
的权限:
$ chmod 600 /home/user/..ssh/id_rsa现在用键做一些事情.许多SSH代理将无法工作,除非密钥是试图运行ssh代理的用户可以读-写访问的。在这种情况下,即是Docker容器中的用户。
https://stackoverflow.com/questions/48325848
复制