Ssh diğer tüm durumlarda çalışırken uzaktan drush komutlarının ssh hatalarıyla başarısız olmasına ne neden olabilir?


10

Tüm üç sunucumda (dev, UAT ve üretim) genel ve özel ssh anahtarlarım var, böylece uzaktan veya birinden diğerine oturum açabiliyorum. sshVe scpkomutları için her şey mükemmel çalışıyor .

O mu değil Drush için, ancak, çalışır. Ben yürütmek durumunda drush @dev statussistemin diyerek sunucunun afiş "yetkili kullanıcılar tarafından kullanılmak üzere okunur UAT gelen, örneğin, ben olsun falan filan ", sonra olsun

İzin reddedildi (publickey, şifre, klavye ile etkileşimli).

Dosyamda ~/.drush/aliases.drushrc.phpşunlar var:

# 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'
);

SADECE Drush benim ssh tuşları kullanarak herhangi bir sorun var. Çalışmasını ne engelleyebilir?


3
Sanırım hangi kullanıcının Drush'ın çalıştırıldığına bağlı. Drush tarafından çalıştırılıyorsa www-data(örneğin), SSH anahtarlarınız yanlış / izin verilmemiş / beyaz listeye alınmamış olabilir.
Chapabu

4
Drush'ın sizin için oluşturduğu ssh komutunu görmek için drush komutlarınızı -v veya -s seçeneğiyle çalıştırın. Ssh'ın Drush çağrısı ile aynının cli testi arasındaki farkın ne olduğu açık olmalıdır.
greg_1_anderson

@Chapabu: Evet, daha sudoönce kullanmak zorundayım drushve her şey root olarak çalışıyor gibi görünüyor (sysadmin'i uyardığım bir güvenlik deliği). Sorun bu gibi görünüyor. Sysadmin'i beklerken şu anda bir çözüm arıyorum ...
iconoclast

Yanıtlar:


19

Bu satırı drushrc.php dosyanıza koyun:

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

Bu, Drush'ın uzak sisteminizi her çağırdığında ssh'ye bu seçenekleri iletmesine neden olur, böylece Drush'u sudo aracılığıyla aramaya devam edebilir ve yine de oturum açma kullanıcı kimlik bilgilerinizi kullanabilirsiniz.


Dostum harikasın ...
iconoclast

Windows için örnek: $ options ['ssh-options'] = '-o PasswordAuthentication = no -i C: \ users \ laptop1 \ .ssh \ id_rsa';
Bryan Jiencke

doğru anlaşılırsa, "/home/YOURUSERNAME/.ssh/id_rsa" dizini drush komutunun yürütüldüğü yerde yereldir. "Home / YOURUSERNAME" dizini $ HOME dizini ve id_rsa ssh-keygen ile oluşturulan özel anahtardır
letonya

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.