J'ai des clés ssh publiques et privées sur chacun de mes trois serveurs (dev, UAT et production) afin que je puisse me connecter à distance ou de l'un à l'autre. Tout fonctionne parfaitement pour les commandes ssh
et scp
.
Cela ne fonctionne pas , cependant, pour Drush. Si j'exécute drush @dev status
de UAT, par exemple, j'obtiens la bannière du serveur indiquant que le système "doit être utilisé uniquement par les utilisateurs autorisés bla bla bla ", puis Je reçois
Autorisation refusée (publickey, mot de passe, clavier interactif).
Ma ~/.drush/aliases.drushrc.php
le fichier contient:
# 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'
);
SEULEMENT Drush a un problème avec mes clés ssh. Qu'est-ce qui pourrait l'empêcher de fonctionner?
Mettez cette ligne dans votre fichier drushrc.php:
$options['ssh-options'] = '-o PasswordAuthentication=no -i /home/YOURUSERNAME/.ssh/id_rsa';
Cela entraînera Drush à transmettre ces options à ssh chaque fois qu'il appelle votre système distant, vous pouvez donc continuer à appeler Drush via Sudo et toujours utiliser vos informations de connexion utilisateur.
Vérifiez ici: Comment exécuter Drush en tant qu'Apache
Par le son, il vous suffit de changer le propriétaire/groupe pour Drush sur votre serveur!