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.

With the PhpStorm 7 EAP, we are introducing even more integrations. How about… a built-in SSH client?

This feature is also available in PyCharm.

From the Tools | Start SSH session… menu, we can connect to any SSH server, whether your local machine or a remote host. All we have to do is provide connection information such as username and password or keypair and we’re good to go!

Have a look at our tutorials page for some examples and on how to work with the SSH client and how remote SSH external tools can help your development process.

As always, let us hear your thoughts in the issue tracker, through the comments below or in our forums!

Develop with pleasure!
– JetBrains PhpStorm Team

About Maarten Balliauw

Maarten Balliauw is a Developer Advocate at JetBrains, working on .NET tools. He focuses on .NET, Azure, web technologies and application performance. Maarten is a frequent speaker at various national and international events. In his free time, he brews his own beer. Follow him on Twitter or check his personal blog.
This entry was posted in Cool Feature, Early Access Program and tagged , , , , . Bookmark the permalink.
  • jp

    Hey, this is great. But please make background black by default, not only in dark theme… This is what most users are used to, I think.

    • Renato

      Background black please not only in darcula theme.

      • Adam Kopeć

        Yeah, or configurable. Or same as default system console settings. Yellow text on white background which I get at the moment is ugly and kills my eyes. I don’t use your dark themes.

        • Mikhail Vink

          It’s configurable in Settings | Editor | Colors & Fonts | Console Colors

          • kazes

            Yes and when you have made your changes in “console background” (at the bottom of the list), you have to close the terminal via the red cross on the left, then open the terminal again.

          • Max

            It’s not work for me. I see blue background always:

  • Paul Redmond

    Anyone else seeing a giant flashing cursor? Using a MBP Retina.

  • B3at

    Great tool, only 2 problems so far
    I must type all the ssh details at every run , and I cant find what font is used inside the ssh termunal because is too thin/antialiased and some letters cant be deciphered.

    • Špringer

      Problem 1:
      Add new server to deployment in settings. Server type select SFTP and set the connection setting. In remote ssh External Tools -> connection settings can now select your server.

      I have one question too. I use this to run bash script and there are bash color markers. Will be supported in the future?

      • Maarten Balliauw

        Colors will be coming (add –colors=auto to commands or enable it in .bashrc using the latest EAP)

  • Kieran Simpson

    Are there plans on having the functionality in IntelliJ?

    • Maarten Balliauw

      It will show up, not sure about when currently. But yes, it’s coming.

  • Philipp Gampe

    Please support the default SSH agent instead of using your own way to store the credentials.
    I really hate the fact that I cannot use my SSH key, but need to use the insecure password approach.

    • Maarten Balliauw

      The SSH client does support working with SSH keys.

      • Alex

        May I elaborate on what I think Gampe’s point may have been?

        Yes, the SSH client allows us to use a private key for authentication. But if we are protecting that key with a passphrase (as we should be), we are faced with a choice: do we allow PhpStorm to remember the password for us, or enter it ourselves every time we need to use it?

        Hitting the “Save passphrase” checkbox is insecure, since then the password is saved unencrypted on disk. This is easy to prove: tell PhpStorm to remember the passphrase for a key you don’t care about, then close it. When you reopen the IDE, it will happily load the key back up without asking for a decryption key. If we were okay with putting everything needed to log in to our server unencrypted on disk, why did we set a passphrase on that key in the first place?

        Even if we don’t check that box, how is PhpStorm’s secret management? Will it allow the password to be written to swap, et cetera? We don’t know. We can’t check, not without going full-blown red team.

        Truly secure authentication is an enormously difficult problem, which is why there are tools like ssh-agent whose entire raison d’être is to do it right. When other tools ignore those existing solutions in favor of their own home-grown implementations, they inevitably push their users to be less secure.

        We, as an industry, should strive to do better than that.

        • Shawn Duncan

          Alex is right on on this – I’m asked for a passphrase when I store credentials in the git implementation in phpStorm.

          What’s up?

        • Dan Langille

          It seems that using ssh-agent is the right thing to do. Does JetBrains have an official response to this? I’d like to know before I download.

          • Dan Langille

            It’s been a month… Does JetBrains read comments?

          • Mikhail Vink

            Yes, we do. Unfortunately, ssh-agent is not supported right now, please vote for this issue:

        • Brian Donovan

          This does not really prove that your passphrase is stored unencrypted on disk. It proves that PhpStorm is able to read the data from wherever it stored it without asking you for a decryption key, but that is not the same thing.

          On OS X I’m guessing it uses the Keychain, which will allow an application that stored a credential to retrieve that credential, but no other applications (without explicit authorization from the user). I’m not sure about Windows, but I’m guessing there is a similar mechanism.

  • Artem Kozhjemyakin

    I got the following error when trying to connect using new SSH feature: UnsatisfiedLinkError: Unable to load library ‘libwinpty’

  • Anatooly

    Hi. And where I need install for correct work on Windows 7 Pro?

    Unable to load library ‘libwinpty’: No found module.
    : Unable to load library ‘libwinpty’: No found module.

  • Stephane

    I’m having great trouble right now with the fact that SFTP appears to already use a custom ssh implementation. It’s not using the ssh tunnel I have set up, so I can’t use PHPStorm for a project when I’m away from the ip address registered in the company’s firewall. I can use TextWrangler and every other ssh-using service.

    Is there a way around this? Will this new version solve this in any way?

    • leneshka

      PhpStorm does not create ssh tunnels, and does not use settings other than provided in File | Settings | Deployment and File | Settings | Deployment | Options.
      But of you create ssh tunnel by some other means (I tested Putty), it successfully uses it.

    • Ian Ferguson

      I cannot bump the feature request enough. It’s so frustrating that I cannot connect to a host alias (defined in ~/.ssh/config). Every single application I have apart from PHPStorm is able to interpret and connect properly when tunnels are involved.

  • Artur

    Unable to load library ‘libwinpty’: No found module.
    : Unable to load library ‘libwinpty’: No found module.
    Bug isn’t fixed. Win 7 Max.

  • Pingback: Built-in Local Terminal in PhpStorm 7 | JetBrains PhpStorm Blog()

  • Name

    No ssh tunnel -> no PHP Storm. Sorry.

  • Peter

    Just tried the ssh tool in PHPStorm 7 – nice addition. Two things I have noticed so far:

    1. Closing the session closes PHPStorm – that is not right.
    2. Is there a way to save connection settings so that I can pick from a list instead of entering them everytime?

    Otherwise great work.

  • Maarten Balliauw

    Closing session shouldn’t close PhpStorm. Can you reproduce this (and if so, report through ?)

    Connection settings can be stored: through Project Settings | Deployment, add a server which uses SFTP and configure from there. The build-in SSH client will show the configured host in a list.

  • Anon

    Can the terminal be made to appear like a normal tab? (seen this in other ides)

  • Anatoly

    How forward keys for git?
    I use keys for authorization ssh, but how forward git key for correct work? Now I use Pageant of Putty for this.

    • Mikhail Vink

      I’m sorry, but what do you mean as forwarding keys? Do you mean putting the key on the remote machine and using it from there? Or do your mean using a key to connect to ssh?

      • Orlando

        He means key forwarding, as putty does, it uses pageant, this is for example if you have git on the server and you want to run a git pull, it will use the same key you connected with to authentica on git, right now phpstorm does not support that and I can’t do a git pull using phpstorm terminal, what is a real shame.

  • daslicht

    It would be lovely if we could browse files on a remote server and edit them locally as it is possible with coda2

    How about saving user / login for SSH connections?

    • Vytenis

      would be great

      • Maarten Balliauw

        That should be possible, at least for username/password.

  • Nariman


    It looks like I cannot connect to SFTP via proxy. it is really annoying. (for example Netbeans can do it…)

  • Bohdan

    The main feature that is missing to replace putty is tunnelling. Devs usually use it.

  • Koby

    Even before SSH tunneling (which is uber-important all by itself), what about actually managing different credentials?

    Right now everytime I click on “Tools > Start SSH Sesssion…” it just says “Select host to connect” and the only option is “Edit credentials…” which forces me to input my credentials from scratch.

    This lack of basic credentials management renders this tool useless. At least for me.