Що може призвести до відмови команд віддаленого друку із помилками ssh, коли ssh працює у всіх інших випадках?


10

У мене є відкриті та приватні ключі ssh на всіх трьох моїх серверах (Dev, UAT і виробництво), тому я можу ввійти в систему віддалено або з одного на інший. Все працює ідеально для команд sshі scp.

Однак для Друша це не працює. drush @dev statusНаприклад, якщо я виконую з UAT, я отримую банер сервера, в якому говориться, що система "повинна використовуватися лише авторизованими користувачами, тільки бла-бла-бла ", і тоді я отримую

У дозволі відмовлено (publickey, пароль, інтерактивна клавіатура).

Мій ~/.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. Що може заважати йому працювати?


3
Я думаю, це залежить від того, від якого користувача запущено Drush. Якщо Drush працює www-data(наприклад), ваші SSH ключі можуть бути неправильними / забороненими / не включеними в білий список.
Чапабу

4
Запустіть свої команди drush за допомогою параметра -v або -s, щоб побачити точну команду ssh, яку Drush генерує для вас. З цього повинно бути зрозуміло, в чому різниця між викликом ДШ на ssh і вашим тестом на кліп того ж.
greg_1_anderson

@Chapabu: Так, я повинен використовувати sudoраніше, drushі, здається, все працює як root (отвір безпеки, про який я попередив sysadmin). Здається, в цьому і полягає проблема. На даний момент я шукаю рішення, поки чекаю сисадміна ...
iconoclast

Відповіді:


19

Помістіть цей рядок у файл drushrc.php:

$options['ssh-options'] = '-o PasswordAuthentication=no -i /home/YOURUSERNAME/.ssh/id_rsa';

Це призведе до того, що Drush передасть ці параметри разом з ssh будь-коли, коли він зателефонує на вашу віддалену систему, тож ви можете продовжувати дзвонити на Drush через sudo та все ж використовувати свої облікові дані для входу.


Чувак, ти чудовий ...
іконоборство

Приклад для Windows: $ options ['ssh-options'] = '-o PasswordAuthentication = ні -i C: \ users \ laptop1 \ .ssh \ id_rsa';
Брайан Jiencke

якщо правильно зрозуміти, "/home/YOURUSERNAME/.ssh/id_rsa" dir є локальним місцем, де виконується команда drush. «Головна / YOURUSERNAME» реж є $ HOME реж і id_rsa є секретний ключ iteself генерується з допомогою SSH-серійник
латвійська

1

Перевірте тут: Як запустити Drush як Apache

За звуком цього просто потрібно змінити власника / групу на Drush на вашому сервері!


Це може бути ідеальним рішенням ... але мені доведеться змусити системного адміністратора погодитись, перш ніж я зможу налаштувати такі речі.
іконоборство
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.