LoginSignup
1
0

More than 3 years have passed since last update.

PhpStormで多段sshでコードのデプロイをする

Last updated at Posted at 2020-10-03

環境

・Windows10 1909
・OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
・PhpStorm 2020.2

はじめに

ローカルファイルをサーバ環境に適用するのに、PhpStomでは
適用対象のファイルを開いた状態で Ctrl+Alt+Shift+X または
Alt+9でGitのペインへ移動し、適用したいコミットログを選択して、Tools>Deployment>UploadTo で
ファイルを適用できるので、とても便利です。

で、この適用先が多段接続の場合、接続テストの段階で

Can't connect to remote host: net.schmizz.sshj.transport.TransportException: Server closed connection during identification exchange

と怒られて、うまく接続できなかったので、それを解決したよという話。

結論

Windowsのsshで正しく接続できるのなら、PhpStormでも接続できる。はまったのはGitBashで接続できているのに↑のエラーが出ていたから。

設定方法

configの設定

~/.sshのconfigに

Host bastion
  Hostname XXX.XXX.XXX.XXX
  User ec2-user
  IdentityFile ~/.ssh/foo.pem

Host destination
  Hostname YYY.YYY.YYY.YYY
  User ec2-user
  IdentityFile ~/.ssh/foo.pem
  ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p bastion

のように設定します。
ここでGitBashで接続できるのにウインドウズではできなかったこと。
・鍵を~/.ssh/ではなくて、フルオープンのフォルダに置く

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'D:/XXXX/foo.pem' are too open.

このように言われてしまいます。

C:\Windows\System32\OpenSSH\ssh.exe の箇所をsshと書く

>ssh destination
CreateProcessW failed error:2
posix_spawn: No such file or directory

こうなってしまいます。

sshはフルパスで記載し、鍵はアクセス制限のあるフォルダに置きます。
こうして正しくconfigを記載し >ssh destination で接続できれば、Phpstomでも以下の設定で接続できるようになります。

PhpStormの設定

Ctrl+Alt+Sで設定ファイルを開き、Tools>SSHConfigurations
image.png
Hostにconfigで指定した名前を設定し
Authentication TypeとしてOpenSSH config and authentication agentを選択します。

次に、Build,Execution,Deplyoment>Deployment に移動し
SSH Configurationに上で指定した設定を選択します。
image.png

あとは、Root Path等の設定をします。
こちらに良記事があります。

これで、簡単にデプロイできるようになりました。

その他

configの設定で、OpenSSH7.3から使用できるようになったProxyJumpを下記のように使用しようとすると

Host destination
  Hostname YYY.YYY.YYY.YYY
  User ec2-user
  IdentityFile ~/.ssh/foo.pem
  ProxyJump bastion

OpenSSH_for_Windows_7.7p1 では接続できませんでした。
OpenSSH_for_Windows_8.1p1を入れたところ、このバージョンでは接続できました。

こちらも参考にしました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0