Saya memiliki kunci ssh publik dan pribadi di ketiga server saya (dev, UAT, & produksi) sehingga saya dapat masuk dari jarak jauh, atau dari satu ke yang lain. Semuanya bekerja dengan sempurna untuk ssh
dan scp
perintah.
Namun, itu tidak berhasil untuk Drush. Jika saya mengeksekusi drush @dev status
dari UAT, misalnya, saya mendapatkan spanduk server yang mengatakan sistemnya "untuk digunakan oleh pengguna yang berwenang hanya bla bla bla ", dan kemudian saya mendapatkan
Izin ditolak (publickey, kata sandi, keyboard-interaktif).
~/.drush/aliases.drushrc.php
File saya mengandung:
# 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'
);
HANYA Drush memiliki masalah menggunakan kunci ssh saya. Apa yang bisa mencegahnya bekerja?
www-data
(misalnya), maka kunci SSH Anda mungkin salah / tidak diizinkan / tidak dimasukkan dalam daftar putih.sudo
sebelumnyadrush
dan tampaknya semuanya berjalan sebagai root (lubang keamanan saya sudah memberitahukan sysadmin tentang). Tampaknya ini masalahnya. Saat ini saya sedang mencari solusi sementara saya menunggu sysadmin ...Jawaban:
Letakkan baris ini di file drushrc.php Anda:
Ini akan menyebabkan Drush meneruskan opsi-opsi ini ke ssh kapan saja ia memanggil sistem jarak jauh Anda, sehingga Anda dapat terus memanggil Drush melalui sudo, dan masih menggunakan kredensial pengguna login Anda.
sumber
Periksa di sini: Cara menjalankan Drush sebagai Apache
Anda hanya perlu mengubah pemilik / grup untuk Drush di server Anda!
sumber