我们在Acquia上托管了几个站点。到目前为止,当我需要执行任何drush命令时,我已经进入服务器,但我希望开始在本地dev机器上使用drush在服务器上执行命令。
有些命令工作时没有问题,drush ac-site-list,但只要需要SSH密钥(例如,drush @site.env status,我就会收到一条Permission denied (publickey).错误消息。我知道这意味着所使用的公共SSH密钥无效,我也知道为什么会发生这种情况。对于所有Acquia服务器,我只有一个SSH密钥,但是因为不同站点有不同的服务器,除此之外,我还有几个“个人或私密”密钥;SSH不知道在执行Drush时使用哪个密钥。
对于其他SSH访问( generate to其他服务器中的SSH),我在我的.ssh文件夹中使用配置文件和别名。
问题是,我不知道如何从.ssh/config文件中分辨出哪个'ssh别名‘。
我怎样才能做到这一点?
发布于 2016-02-25 19:28:36
Drush别名文件具有提供其他参数的选项:
‘ssh选项’:如果目标需要特殊选项,如非标准端口、替代标识文件或替代身份验证方法,ssh选项可以包含与ssh命令一起使用的一系列额外选项,如"-p 100“。
来源:https://github.com/drush-ops/drush/blob/master/examples/example.aliases.drushrc.php
要让SSH使用正确的SSH键,可以将其附加到ssh -i path/to/key.pem user@server中。因此,在您的别名文件中,您应该能够添加:
$aliases['alias'] = array(
...
'ssh-options' => '-i path/to/key.pem',
...
);我不确定是否可以使用.ssh/config中定义的键,因为配置文件会自动将SSH键与主机连接起来。因此,您可以调用ssh user@server,SSH应该附加密钥。因此,我怀疑它是否可以使用,因为我假设drush将自动使用remote-host和remote-user来构建SSH连接:ssh remote-user@remote-host和.ssh/config的键应该在此时应用。
https://drupal.stackexchange.com/questions/192649
复制相似问题