PhpStormにて多段sshで外部サーバのプロジェクトを追加する方法


背景

PhpStorm導入したんだけどEC2上の開発環境で直接作業したい。(楽に)
でもそのEC2は踏み台サーバー経由しないとアクセスできない

fuseでマウントすれば?

fuseでマウントする方法が割と有名だったのだが、OSがHighSierraだからか、エラーが出てうまくいかない。
カーネルいじればうまくいくとの声もあったがよくわかっていないものには手を出したくないのでやめておく。

やり方

※日本語環境で作業しています

ssh configの設定

まずはssh接続で使用するconfigファイルに多段ssh接続の設定を追記する

jumpが踏み台でmy_project_hostが真に接続したいサーバーである

Host jump
 Hostname jump-ip
 User jump-user_name
 IdentityFile ~/.ssh/jump-key

Host my_project_host
 Hostname my_project_host-ip
 User my_project_host-user_name
 IdentityFile ~/.ssh/my_project_host-key
 ProxyCommand ssh -W %h:%p jump

PhpStormの設定

  • menu>ファイル>既存ファイルから新規プロジェクトを選択
  • Webサーバーはリモートホスト上にあり〜を選択

  • プロジェクト名はご自由にどうぞ

  • sftpに設定し、sftpホストを設定する。この名前はssh_configのhost名と合わせる
  • ルートパスはそのサーバ内における接続したいプロジェクトのホームで良いかと。すでに接続可能になっている場合、自動的にパス候補が表示される
  • ユーザー名はsshで接続するユーザー
  • 認証タイプは「OpenSSH config and ~ 」にする。これで上で設定したssh/configを利用するようになる
  • SFTPの接続テストをしておく。ダメなら設定を見直す。(まずPhpStormなしで繋がるか確認しよう)
  • 「Don't check HTTP〜」は踏み台サーバーの場合、HTTPで接続できないことが多いと思うのでチェックしておこう
  • あとはディレクトリが表示されるのでルートの設定や同期したいファイルの可否などを細かに設定していこう

以上でPhpStormにて多段sshを使い、外部サーバーからプロジェクトが登録できる