Webサーバーの運用ではセキュリティ的な観点から、しばしばSFTP(もしくはSSH)接続をおこなう際はIP制限をかけておいて、プロキシ認証(今回の場合はHTTPプロキシ)を介さないとアクセスできないようにしておくことがあります。
そういった環境のファイルをいじりたいとき、そこそこの規模なサイト・サービス構築をするときはGit経由でファイルをデプロイするのでコンソールにさえ繋げれば問題ありません。が、ちょっとしたLPを置いておきたいだけだとか、あとはログの軽いチェックなどをしたいとき、直接SFTPでサーバーへ繋ぎたいときもありますよね。
ちょうど先日、上記のようなタイミングにぶち当たりました。日々のコーディングをだいたいPhpStormでやっている私なのでSFTP設定を試みますが、残念なことにPhpStormではプロキシ経由のSFTP設定をおこなうことができません。ということで、以下どうにかしてHTTPプロキシ(認証あり)経由のSFTPをつないだ備忘録です。
環境
Windows 10 Pro
PhpStorm 2020.3.1
やったこと
-
まだGitがインストールされていない場合はGit for Windowsをインストールしておく。Git for Windowsに同梱されているconnect.exeが必要です(場所はC:\Program Files\Git\mingw64\binあたり)。もしかするとMingw-w64を単体でインストールしてもいいのかもしれませんが、未確認です。
-
C:\Users\hogehoge\.sshにconfigという名前のファイルを作る(拡張子なし)。そして、以下のように記述。ファイルパスとかは適宜変更してください。あとは普通の手順でPhpStormのSFTP設定をすれば接続時にプロキシのパスワードが聞かれるようになります。
Host [接続したいサーバーのIPアドレス]
ProxyCommand C:\Program Files\Git\mingw64\bin\connect.exe -H [プロキシのユーザー名]@[プロキシのIPアドレス]:[プロキシのポート] %h %p
ServerAliveInterval 10
むすび
ということで普通にSSH Configを利用する方法です。まあGit使えばだいたい解決する話ですね。
まあこうしておくとオートデプロイとかできて便利ですし、テスト環境組むとかにも便利なのでいいんじゃないでしょうか。知らんけど。
参考
https://qiita.com/ko-he-8/items/06ae39f77dd5189df59b
https://kaworu.jpn.org/security/HTTP%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7%E3%82%B5%E3%83%BC%E3%83%90%E7%B5%8C%E7%94%B1%E3%81%AEssh%E6%8E%A5%E7%B6%9A