У меня есть открытые и закрытые ssh-ключи на всех моих трех серверах (dev, UAT, & production), поэтому я могу войти удаленно или с одного на другой. Все прекрасно работает для 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. Что может помешать его работе?
www-data
(например), то ваши SSH-ключи могут быть неправильными / запрещенными / не в белом списке.sudo
раньше,drush
и кажется, что все работает как root (дыра в безопасности, о которой я предупреждал сисадмина). Похоже, что это проблема. В настоящее время я ищу решение, пока жду сисадмина ...Ответы:
Поместите эту строку в ваш файл drushrc.php:
Это заставит Drush передавать эти параметры ssh каждый раз, когда он вызывает вашу удаленную систему, поэтому вы можете продолжать вызывать Drush через sudo и при этом использовать свои учетные данные для входа в систему.
источник
Проверьте здесь: Как запустить Drush от Apache
По звуку, вам просто нужно изменить владельца / группу для Drush на вашем сервере!
источник