PuTTY

From DreamHost
(Redirected from Putty)
Jump to: navigation, search

Overview

PuTTY is a free terminal emulator which supports various network protocols such as SSH, Telnet, rlogin, and SCP. It was originally available only for Windows, but is now also available on various UNIX platforms, with work-in-progress ports to Classic Mac OS and Mac OS X. At DreamHost, you are able to use PuTTY to log into your web server through your SHELL username.

Main functions

Main functions are realised by PuTTY files themselves:

PuTTY (putty.exe) 
the Telnet and SSH client itself.
PSCP (pscp.exe) 
an SCP client (i.e., command-line secure file copy).
PSFTP (psftp.exe) 
an SFTP client (i.e., general file transfer sessions much like FTP).
PuTTYtel (puttytel.exe) 
a Telnet-only client.
Plink (plink.exe) 
a command-line interface for the PuTTY back ends.
Pageant (pageant.exe) 
an SSH authentication agent for PuTTY, PSCP, and Plink. It holds your private keys in memory, already decoded, so that you can use them often without needing to type a passphrase.
PuTTYgen (puttygen.exe) 
an RSA and DSA key-generation utility.

Downloading PuTTY

Use the following steps to download and set up PuTTY onto your Windows computer.

  1. On your Windows computer:
    • navigate to C:\
    • In that directory, create a folder named \bin
    This is the location into which you’ll download your PuTTY files. It doesn’t necessarily matter where you download them, but adding this directory makes it easier to keep track of the files.
  2. Open the download page in your browser:
  3. Download the following files from that site into your C:\bin folder:
    • putty.exe
    • puttygen.exe
    • pagent.exe
    • pscp.exe
    • psftp.exe
  4. For easy access, create a shortcut on your Desktop:
    • Right click on your Desktop and choose ‘New > Shortcut’
    • Browse to the location of your putty.exe file (it should be C:\Users\yourusername\bin\putty.exe)
    • Save the shortcut
    When you open PuTTY, you’ll see this configuration box:
    01 Putty config.png
  5. Enter your DreamHost credentials in the PuTTY Configuration box (see details below).
  6. Click the Save button to save this session.

At this time, you’ll be able to open that session in PuTTY. It will then ask for your SHELL username/password.

Description of fields in the PuTTY Configuation box

Host Name (or IP address)
In this field enter your DreamHost servername. For example, if your server is named flower, this hostname is flower.dreamhost.com
Port
22
Connection Type
SSH
Saved Sessions
Enter a name for this connection. For example “DreamHost Server”

Setting up Passwordless Login

This following provides instructions on how to set up Passwordless Login with PuTTY.

  1. Open the puttygen.exe file you downloaded previously. You’ll use this to create your private/public keypair.
  2. In the PuTTY Key Generator box, make sure the radio button at the bottom is selected for ‘SSH-2-RSA’.
    02 putty keygen.png
  3. Click the Generate button.
  4. Move your mouse around the box to help generate the keys.
    Once the key is created, a new pop-up box appears.
    03 pubkey.png
    Note2 icon.png Notes:
    • On the bottom right, there are buttons named Save public key and Save private key – save both to your computer.
    • When you save the public key, name it something like "dreamhostpublickey". Do not manually add the extension as that isn’t necessary.
    • When you save the private key, name it something like "dreamhostprivatekey" and be sure to save it in a secure location on your computer. Again, do not manually add the extension as that isn’t necessary.


  5. Upload the public key you just created to your DreamHost users home directory. You can use a client such as Filezilla to do this.
  6. Log into your DreamHost web server through PuTTY.
  7. In your users /home directory, create an /.ssh directory by running this command:
     mkdir .ssh
    
  8. Append the public key you just uploaded to a new file named ‘authorized_keys’ which will be in the /.ssh directory by running this command in your users /home directory:
     ssh-keygen -i -f dreamhostpublickey >> ~/.ssh/authorized_keys
    

    This appends the dreamhostpublickey you uploaded from your home computer into a new file named ‘authorized_keys’. Just make sure the name of the public key file is the name you uploaded it as.

  9. Adjust permissions by running this command:
     chmod go-rwx ~/.ssh ~/.ssh/authorized_keys
    

    Then remove the original dreamhostkey.pub file:

     rm dreamhostpublickey
    

    Now the keys sit on the server (protected from access by others)

  10. Log out of PuTTY and start the program up again.
  11. When the program restarts, open the configuration box and click the ‘Connection’ > ‘Data’ category on the left.
    04 username.png
  12. Enter your DreamHost SHELL username in the first field which is named ‘Auto-login’ username.
    05 auth.png
  13. In the same configuration box, click ‘Connection’ > ‘SSH’ > ‘Auth’.
  14. Click the Browse button and navigate to the location on your computer where you saved your dreamhostprivatekey file.
  15. On the configuration box, click the 'Session' category and enter the following:
    • Host Name: yourserver.dreamhost.com
    • Port: 22
    • Connection Type: SSH
    • Saved Session: Enter a new name
  16. Click the Save button.
  17. Open pageant.exe on your home computer to authenticate automatically.
    • It may appear as an icon on the bottom right of your toolbar.
    • Right click on that icon and choose ‘Add Key’.
  18. Navigate to where you stored your private key on your computer and add the private key file.
  19. Open PuTTY and click the new saved session you created for the passwordless login. This will now log you in without prompting for a password.
Note2 icon.png Note: If the PuTTY console responds with "Server Refused Our Key," this may indicate the public key PuTTY generated is not in a form the remote system recognizes or can use to authenticate your access. Refer to the following link for instructions on how to edit the public key file to a format the remote server recognizes:


Troubleshooting

Directory/filenames which contain non-english/Asian characters show up as ?????? or are corrupt

If you have problems with your filenames or content not showing up correctly then you will want to add the following to your .bash_profile file to enable UTF support:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export G_FILENAME_ENCODING=UTF-8

UTF-8 is most likely enabled already. You can check in your terminal by entering the command ‘locale’.

[horsetail]$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=C
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

You can see the first line is LANG=en_US.UTF-8. If for some reason this still doesn’t work, it’s most likely the terminal client you’re using. In PuTTY you can manually adjust the translation option to UTF-8.

To adjust the translation option, follow these steps:

  1. Open the PuTTY general configuration.
    06 charset trans.fw.png
  2. In the left Category list section, select ‘Window > Translation’.
  3. In the dropdown for ‘Remote character set:’ choose UTF-8.
  4. Go back to the ‘Session’ category and make sure to save your current session with all settings.

If you login again using PuTTY, you will see the non-English characters displayed correctly.

Idle connections are getting dropped

Dreamhost and other ISPs may kill ssh connections that remain idle longer than a certain number of minutes. In PuTTY (for Windows), you are able to adjust that setting in the Configuration box:

  1. Open the PuTTY general configuration.
  2. In the left Category list section, select ‘Connection’.
  3. In the field ‘Seconds between keepalives (0 to turn off)', enter 15.
  4. Check the box for ‘Enable TCP keepalives (SO_KEEPALIVE option)'.
    07 connection.fw.png

Now the ssh client will ask the server for a sign of life every 15 seconds, thus keeping the connection open.

See also