For most people starting in data analysis today I recommend Python + VSCode as the development environment. Amongst the reasons for recommending VSCode is the superb remote development capabilities which is often critical for analysing large datasets for which it makes no sense to run the development front end on the same machine as is doing the data analysis.

Of course to make remote development smooth and secure it is usually desirable to remove the need to enter passwords manually. Normally I recommend use of a hardware key, such as Yubi key, for SSH authentication. This ensures an additional level of security over that provided by Windows while having a very easy user-interface.

The mechanism for enabling for enabling SSH authentication with Yubikey is described here but here is my recipe for getting everything running smoothly with VSCode:

  1. Install Git for Windows SDK – we will use the OpenSSH version supplied for this

  2. Install GPG4Win, and enable putty support as explained here on the Yubikey pages

  3. In the git sdk bash shell run the command

     eval $(/usr/bin/ssh-pageant -r -a "/tmp/.ssh-pageant-X")

    Check that you can ssh into desired hosts by using the ssh command in the bash window.

  4. Create a Windows batch file which picks up the ssh-pageant authorisation socket and then calls the git-sdk openssh:
    c:\git-sdk-64\usr\bin\bash -c "SSH_AUTH_SOCK='/tmp/.ssh-pageant-X'; export SSH_AUTH_SOCK; /c/git-sdk-64/usr/bin/ssh %*"

    Save this file somewhere, e.g., c:\myssh.bat

  5. In VSCode, open the Remote-SSH plugin settings and specify your batch file, i.e., c:\myssh.bat

  6. Remember that if you need to use the Proxy option in the .ssh/config file (to hop over an intermediate ssh server), you need to specify the ssh command with full path, i.e.,
Host myhost
   ProxyCommand /c/git-sdk-64/usr/bin/ssh intermediatehost nc myhost 22

And this should do it — smooth and secure remote SSH logins.