Tengo claves ssh públicas y privadas en todos mis tres servidores (dev, UAT y producción) para poder iniciar sesión de forma remota o de uno a otro. Todo funciona perfectamente para los comandos ssh
y scp
.
Sin embargo, no funciona para Drush. Si ejecuto drush @dev status
desde UAT, por ejemplo, obtengo el banner del servidor que dice que el sistema "debe ser utilizado por usuarios autorizados solo bla, bla, bla ", y luego obtengo
Permiso denegado (clave pública, contraseña, teclado interactivo).
Mi ~/.drush/aliases.drushrc.php
archivo contiene:
# 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'
);
SOLO Drush tiene algún problema al usar mis teclas ssh. ¿Qué podría estar evitando que funcione?
www-data
(por ejemplo), entonces sus claves SSH pueden estar equivocadas / no permitidas / no incluidas en la lista blanca.sudo
antesdrush
y parece que todo se está ejecutando como root (un agujero de seguridad del que he alertado al administrador del sistema). Parece que este es el problema. Actualmente estoy buscando una solución mientras espero el administrador del sistema ...Respuestas:
Pon esta línea en tu archivo drushrc.php:
Esto hará que Drush pase estas opciones a ssh cada vez que llame a su sistema remoto, por lo que puede continuar llamando a Drush a través de sudo, y aún usar sus credenciales de usuario de inicio de sesión.
fuente
Marque aquí: Cómo ejecutar Drush como Apache
Por lo que parece, ¡solo necesita cambiar el propietario / grupo para Drush en su servidor!
fuente