When you work with remote servers, a common and recommended security measure is to use SSH key pairs for authentication.
Our friends at PyCharm have prepared a great blog post on the topic. It explains how to generate an SSH key pair, store the passphrase for the private key in the credential helper, and, in the end, how to connect to a remote Python interpreter over SSH using the generated key pair for authentication.

Before proceeding, make sure that you have a remote machine at hand to which you can connect over SSH using the generated key pair. Also, make sure to add your key to the credential helper application (SSH agent, Pageant, or a compatible tool). If you don’t have a spare remote machine, you can use the example Vagrant box provided as part of the above tutorial.
Previously, if you had to configure Deployment via SFTP, add a remote PHP interpreter via SSH, or use an SSH terminal, you had to configure an SSH connection for each, even if you were using the same server for all of them. PhpStorm 2020.1 introduces a unified UI for configuring SSH connections. Using the PhpStorm built-in SSH terminal and remote SSH external tools We can already do a lot from within our IDE: develop our application, connect to database systems, work with source control, debug HTTP traffic and much, much more.
When ready, jump right into the PhpStorm specifics.
In PhpStorm, we can make use of SSH keys and credential helper applications in two areas: when configuring remote deployment servers and remote PHP interpreters. Both scenarios involve the same setup technique, and we can actually reuse an existing remote deployment server configuration for setting up an interpreter.
Setting up a remote deployment server
To connect to a remote deployment server over SSH, we need to create a new server access configuration of the SFTP type.
Navigate to Settings / Preferences | Build, Execution, Deployment | Deployment. Then, click + to add a new SFTP server:
Phpstorm And Ssh
Next, provide the server parameters:
In this tutorial, we’ll use the values that will allow us to connect to the example Vagrant box:
- SFTP host: localhost
- Port: 2222 (the default port that Vagrant exposes for SSH).
- User name: example
- Auth type: Authentication agent (ssh-agent or Pageant)
By setting authentication method to Authentication agent, you’re instructing PhpStorm to use the credentials stored in the credential helper application (SSH agent, Pageant, or a compatible tool).
Once the parameters are set, test your connection, apply the changes, and you’re good to go!
The remote server that we have configured will probably handle our PHP code as well. We can reuse its configuration for setting up a remote PHP interpreter. First, let’s ensure that PHP is installed on the remote server. Select Tools | Start SSH Session… in the main menu and select the remote host in the pop-up window:
Since your SSH keys are managed by the credential helper, the SSH session should instantly start in the built-in PhpStorm terminal without requiring you to type anything. To find out whether PHP is installed, run the php -v
command:
The command is not found, which means that PHP is not installed. We can easily fix this by running the following command:
sudo apt-get install php

Note that this command requires elevated privileges, i.e. entering your password. In our Vagrant box, the password for the example user is set to hunter2. Type it in when prompted, and wait a short while until PHP is installed. To be absolutely sure, you can run the php -v
command once more:
Setting up a remote PHP interpreter
PHP is now installed on a remote server, and instructing PhpStorm to use it could not be simpler. Navigate to Settings / Preferences | Languages & Frameworks | PHP and click the ellipsis (…) button next to the CLI Interpreter field:
In the opened CLI Interpreters window, click + and select the From Docker, Vagrant, VM, Remote… interpreter type:

PhpStorm will detect a remote deployment server configuration that we created earlier and will suggest reusing it as a configuration for the remote interpreter:
Click OK, apply your changes, and you are done! You can now upload, download, and manage remote files directly in PhpStorm, as well as execute your PHP code remotely.
Phpstorm Ssh Terminal
As a side note, if you need to set up only a remote PHP interpreter, without reusing an existing deployment configuration, choose the SSH Credentials option in the above dialog box. Provide the server parameters and select the Authentication agent (ssh-agent or Pageant) authentication type – just as you would for configuring a remote deployment server.
Phpstorm Ssh Tunnel Mysql
JetBrains PhpStorm Team
The Drive to Develop
