3つのサーバー(dev、UAT、&production)のすべてに公開および秘密のssh鍵を持っているので、リモートまたは相互にログインできます。すべてがssh
およびscp
コマンドに対して完全に機能しています。
ただし、Drushでは機能しません。drush @dev status
たとえば、UATから実行すると、サーバーのバナーが表示され、システムは「許可されたユーザーのみが使用できる」というメッセージが表示され、その後、
権限が拒否されました(公開キー、パスワード、キーボードインタラクティブ)。
私の~/.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キーの使用に問題があります。何が機能しないのでしょうか?
-vまたは-sオプションを指定してdrushコマンドを実行し、Drushが生成している正確なsshコマンドを確認します。Drushでのsshの呼び出しと同じcliテストの違いは何なのかは明らかです。
—
greg_1_anderson
@Chapabu:はい、
—
iconoclast
sudo
前に使用するdrush
必要があり、すべてがrootとして実行されているようです(sysadminに警告したセキュリティホール)。これが問題のようです。私は現在、システム管理者を待つ間、解決策を探しています...
www-data
(たとえば)によって実行されている場合、SSHキーが間違っている/許可されていない/ホワイトリストに登録されていない可能性があります。