警告:无法访问身份文件/home/user/.ssh/id_rsa:没有此类文件或目录

时间:2018-01-18 16:21:35

标签: ssh php-deployer

我使用Deployer将代码部署到多台服务器。今天我在开始部署后遇到了这个错误:

ssh

首先,我认为这可能与此服务器配置有关,因为我已将完整安装移至另一个托管服务提供商。我尝试触发部署到服务器,我在过去几天部署得很好,但后来遇到了同样的错误。这很快让我怀疑从服务器到本地。

由于我在docker中运行PHP(Deployer是用PHP编写的),我认为这可能与我的ssh-agent无法从主机操作系统正确转发到docker有关。我通过直接从我的操作系统使用全新的PHP安装来验证这一点(Ubuntu,如果这将有所帮助)。日志中仍然弹出相同的警告。

使用{{1}}命令登录时,一切似乎都没问题。我仍然不知道这里发生了什么。有什么想法吗?

PS:我还在Deployer的GIT回购中创建了一个问题:https://github.com/deployphp/deployer/issues/1507

1 个答案:

答案 0 :(得分:0)

我对您正在谈论的图书馆没有经验,但是问题从这里开始:

Warning: Identity file /home/user/.ssh/id_rsa not accessible: No such file or directory.  

因此,让我们集中精力。我能想到的潜在事物:

  1. 用户名真的是user吗?它说该文件位于:/home/user。验证这确实是正确的路径。例如,仅ls个文件。如果不存在,则会出现错误:

    $ ls /home/user/.ssh/id_rsa

如果不存在,将抛出No such file or directory

  1. 如果不是1.问题,则很可能是用户问题,其中Docker容器中的用户权限错误。如果这是问题所在,请在Docker容器内,在需要执行以下操作之前更改id_rsa的权限:

    $ chmod 600 /home/user/.ssh/id_rsa
    Now do stuff with the key... 
    

除非该密钥只能由试图运行ssh代理的用户读写访问,否则许多SSH代理将无法工作。在这种情况下,那是Docker容器内部的用户。