Using the PhpStorm built-in SSH terminal and remote SSH external tools

Posted on by Maarten Balliauw

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

Comments below can no longer be edited.

50 Responses to Using the PhpStorm built-in SSH terminal and remote SSH external tools

  1. jp says:

    August 8, 2013

    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 says:

      October 4, 2013

      Background black please not only in darcula theme.

      • Adam Kopeć says:

        October 23, 2013

        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 says:

          October 24, 2013

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

          • kazes says:

            November 14, 2013

            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 says:

              February 2, 2015

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

  2. Paul Redmond says:

    August 8, 2013

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

    http://cl.ly/image/0G3e3r3f2P26

    • Maarten Balliauw says:

      August 9, 2013

      Would you mind posting this one in the issue tracker at http://youtrack.jetbrains.com/issues/WI ?

      • Paul Redmond says:

        August 9, 2013

        Added the issue, thanks!

  3. B3at says:

    August 9, 2013

    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 says:

      August 9, 2013

      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 says:

        September 19, 2013

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

  4. Kieran Simpson says:

    August 9, 2013

    Are there plans on having the functionality in IntelliJ?

    • Maarten Balliauw says:

      September 19, 2013

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

  5. Philipp Gampe says:

    August 9, 2013

    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 says:

      August 12, 2013

      The SSH client does support working with SSH keys.

      • Alex says:

        September 9, 2013

        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 says:

          October 23, 2013

          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 says:

          February 5, 2014

          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.

        • Brian Donovan says:

          July 30, 2014

          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.

  6. Artem Kozhjemyakin says:

    August 17, 2013

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

  7. Anatooly says:

    September 2, 2013

    Hi. And where I need install https://github.com/rprichard/winpty/downloads/ for correct work on Windows 7 Pro?

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

  8. Stephane says:

    September 17, 2013

    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 says:

      September 18, 2013

      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 says:

      January 28, 2014

      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.

  9. Artur says:

    September 19, 2013

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

    http://clip2net.com/s/5Mwoit
    Bug isn’t fixed. Win 7 Max.

  10. Built-in Local Terminal in PhpStorm 7 | JetBrains PhpStorm Blog says:

    September 25, 2013

    […] already have a built-in SSH terminal for PhpStorm 7 EAP. The latest drop adds a related feature: the Tools | Open Terminal… menu gives […]

  11. Name says:

    October 1, 2013

    No ssh tunnel -> no PHP Storm. Sorry.

  12. Peter says:

    October 22, 2013

    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.

  13. Maarten Balliauw says:

    October 22, 2013

    Closing session shouldn’t close PhpStorm. Can you reproduce this (and if so, report through http://youtrack.jetbrains.com/issues/WI ?)

    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.

  14. Anon says:

    October 24, 2013

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

  15. Anatoly says:

    October 24, 2013

    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 says:

      October 24, 2013

      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 says:

        May 13, 2014

        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.

  16. daslicht says:

    April 17, 2014

    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 says:

      May 22, 2014


      would be great

      • Maarten Balliauw says:

        May 22, 2014

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

  17. Nariman says:

    May 30, 2014

    Hi,

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

  18. Bohdan says:

    July 2, 2014

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

  19. Koby says:

    February 21, 2015

    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.

Subscribe

Subscribe for updates