我在所有三台服务器(开发,UAT和生产)上都有公用和专用ssh密钥,因此我可以远程登录,也可以从另一台登录。对于ssh
和scp
命令,一切都工作正常。
它不工作,但是,对于Drush。drush @dev status
例如,如果我从UAT 执行,则会收到服务器的标语,上面写着该系统“仅供授权用户使用,等等 ”,然后我得到
权限被拒绝(公钥,密码,键盘交互)。
我的~/.drush/aliases.drushrc.php
文件包含:
# Development #
$aliases['dev'] = array(
'uri' => 'http://default',
'root' => '/var/www/vhosts/dev.www.company.com/current/',
'remote-host' => 'companya0.company.com',
'remote-user' => 'myusername'
);
# UAT #
$aliases['uat'] = array(
'uri' => 'http://default',
'root' => '/var/www/vhosts/uat.www.company.com/current/',
'remote-host' => 'companyc6.company.com',
'remote-user' => 'myusername'
);
# Production #
$aliases['prod'] = array(
'uri' => 'http://default',
'root' => '/var/www/vhosts/www.company.com/current/',
'remote-host' => 'companyc1.company.com',
'remote-user' => 'myusername'
);
仅 Drush使用我的ssh密钥有任何问题。是什么导致它无法正常工作?
使用-v或-s选项运行drush命令,以查看Drush为您生成的确切ssh命令。从中应该清楚地知道,对ssh的Drush调用与对ssh的cli测试之间有什么区别。
—
greg_1_anderson
www-data
例如,如果正在运行Drush ,则您的SSH密钥可能是错误的/不允许的/未列入白名单。