リモートホストのエイリアスを定義するwp-cli.yml
ファイルがあります。
@Origin:
ssh: myserver.example.com
path: /path/to/htdocs
これは通常私がwp @Origin command
を使って他のホスト上でリモートコマンドを実行することを可能にします。しかし、ある場合には、リモートホストはSSHプロキシを通してしか見えないので、私のシステムは~/.ssh/config
にSSH configエントリを持っています。
Host myserver.example.com
ProxyCommand ssh -q -W %h:22 proxyserver.example.com
ForwardAgent yes
これは、最初にプロキシサーバーに接続し、次にそこから宛先サーバーに接続するように指示します。次のように入力するだけで、そのボックスにワンステップでログインできます。
$ ssh myserver.example.com
しかし、私がWP-CLIで同じことを試みると、うまくいきません。
$ wp @Origin db export --add-drop-table -
Error: Cannot connect over SSH using provided configuration.
私は、WP-CLIが私のSSH設定を見ていないか、そこにあるProxyCommand
ディレクティブを理解していないと結論づけました。
SSHと同じ方法でプロキシを使用するためにwp-cli.yml
configまたはwp
コマンドに追加できるものはありますか?
私はあなたに似た設定を作成しました、そしてプロキシは私のために働いています。私の設定はこんな感じです:
Host production
HostName xxx.xxx.xxx.xxx
ProxyCommand ssh -q -W %h:22 vagrant
ForwardAgent yes
Host vagrant
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /path/to/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
ForwardAgent yes
LogLevel FATAL
私は私のvagrantローカルマシンをプロキシとして扱っていて、プロダクションサーバー上でコマンドを実行したいのですが。
私のwp-cli.ymlファイルはこんな感じです:
@local:
ssh: vagrant/var/www/test
@prod:
ssh: production/var/www/test
私はwpコマンドを実行していますが、その代わりに本番サーバーからデータを取得します。
wp @prod config get
Host vagrant
ファイルから~/.ssh/config
セクションを削除するとコマンドを実行できず、代わりにエラーが発生するため、プロキシが機能していることがわかります。
Composerを使ってwp-cli localyをインストールしてみてください。
composer require wp-cli/wp-cli
echo
エスケープされたコマンド variableとそのようなコマンドを実行します。
./vendor/bin/wp @prod config get
この変数はあなたの完全なsshコマンドを含むべきです。多分これはあなたに何が起こっているのかのヒントを与えるでしょう。