Here is a step-by-step guide to logging into your Unix shell from a remote Windows computer using PuTTY, conducting secure file transfers using the graphical WinSCP client, and accessing remote CVS/SVN repositories using either the command-line cvs / svn commands, or graphical clients such as WinCVS.

Logging in to your Unix shell

Download PuTTY package or installer from the PuTTY download page. You may want to install putty.exe in some convenient location in your system PATH (e.g., C:\WINDOWS\COMMAND\).

Start up PuTTY. This brings up the PuTTY Configuration window. In the Session category, do the following:

  1. In the Host Name box, type your server's host name (if you forgot it, log on to the control panel and it will be displayed on the main page).
  2. Select SSH to be the protocol. This also sets the Port to 22.

In the Connection category, do the following:

  1. Type your username in the box labelled Auto-login username.
  2. Now, go back to the Session category. In the Stored session box, enter some arbitrary name such as "csoft" and click on Save. Now "csoft" will appear in the box underneath. Click on it and press Open. This should start a shell session and you will be prompted for your password.
Secure file transfers

The package consists of a collection of command-line utilities, which will enable the user to connect and conduct file transfers in a secure manner. The two most significant transfer tools in the collection are: pscp.exe, a copy program, and psftp.exe, an FTP-style client.

If you wish to use a graphical interface, there is an excellent open-source scp/sftp client, called WinSCP, freely available for download here. WinSCP goes beyond the basic file transfer operations and allows the user to manage directories and file attributes, such as setting permissions and group ownership on files or directories. In addition with WinSCP, the user can perform remote text file editing.

CVS / Subversion over SSH in Windows
There are free GUI and command-line CVS and Subversion clients available under Windows (some IDEs also provide it as a built-in functionality). We generally recommend that new repositories be created using Subversion, which provides all of the features of CVS, and more. The TortoiseSVN program, which works as a Windows shell extension, is a very simple Subversion client to use.
CVS Users: Using WinCVS

You can download the WinCVS client from the WinCVS homepage. Once WinCVS is running, select Admin/Preferences to enter the CVS repository settings. Enter the CVSROOT (e.g., cvsusername@server:/path/to/cvsroot) and select SSH server as the authentication mode. For security reasons, we recommend that CVS repositories be accessed through "CVS-only" accounts created from csoftadm, not your main Unix account. Leave the Use version setting to "cvs 1.10 (Standard)". It is also recommended to select a TCP/IP compression level of 3 (in the Globals tab).

Make sure that you have the following Cygwin packages installed. If you don't have Cygwin installed, get the Cygwin installer from the Cygwin home page (click on "Install Cygwin now").

  • Base/textutils
  • Net/openssh
  • Net/openssl
  • Net/rsync
  • Shells/bash
  • Shells/ash

Back to the WinCVS preferences window, select the Ports tab. Say you have Cygwin installed in C:\Cygwin, check the Check for an alternate rsh name option, enter the path C:\Cygwin\bin\ssh and you're done. Checking out modules should work at this point.

CVS Users: Using the command-line cvs

The original cvs is available as a Cygwin package and it supports the SSH protocol. The cvs micro-howto instructions also apply to the Cygwin port of cvs. Obtain the Cygwin installer from the Cygwin homepage and make sure that at least the following packages are installed:

  • Base/textutils
  • Base/diffutils
  • Devel/cvs
  • Net/openssh
  • Net/openssl
  • Net/rsync
  • Shells/bash
  • Shells/ash

Start up the Cygwin bash shell and follow the instructions in the cvs micro-howto.

CVS Users: Using public-key authentication

You probably don't want to have the CVS program ask for your SSH password at every operation. Public key authentication allows your SSH client to connect without having to enter a password. To generate a key pair, use ssh-keygen from the Cygwin shell:

  $ ssh-keygen -t ecdsa
  $ ssh-keygen -t ed25519

Login to the Control Panel and click on the CVS-only account in the CVS accounts section. It will allow you to paste the contents of your local ~/.ssh/id_*.pub file. Multiple keys can be assigned per CVS account.

Alternatively, you can also paste your key using cvs pubkey add in the command-line csoftadm.

Note: For best security, enter a non-empty passphrase and use ssh-agent(1) on your workstation so that the passphrases are remembered (ssh-agent attaches to your login session).

  • Steve at epiwerks (original PuTTY howto)
  • Dameon D. Welch-Abernathy (WinSCP)