FactorPad
Faster Learning Tutorials

The Windows SSH client PuTTY plus the Mac and Linux ssh commands

The ssh command comes preloaded on Mac and Linux computers, and on Windows we will use PuTTY SSH.
  1. Server & Client - Highlight the SSH connection between computers.
  2. Linux - Introduce the ssh command.
  3. macOS - See similarities in the ssh command.
  4. Windows - Introduce PuTTY.
  5. Next: PuTTY setup - Walk through this quirky user interface.
Paul Alan Davis, CFA, January 27, 2017
Updated: August 11, 2018
SSH is important because staying safe is important, so keep reading.

Outline Back Next

~/ home  / tech  / full stack  / install ssh client


Review ssh client offerings on Linux, macOS and Windows

Beginner

Video Tutorial

The Windows SSH client PuTTY plus Mac ssh and Linux ssh commands (4:39)

Videos can also be accessed from our Full Stack Playlist 1 on YouTube.

Code Examples and Video Script

Welcome. Today's question: How do you start the SSH client on your computer? Linux, macOS or Windows.

I'm Paul, and we're winding our way towards fun statistical projects here.

Step 1 - Overview

In this tutorial, we'll open a window into a server using the secure shell protocol, or SSH. I covered the server-side in the last tutorial. Now the focus is on the client-side, your personal computer.

We'll start with the easiest, Linux, which is similar to the experience on a Mac.

We will conclude with suggestions for Windows users, pointing to the setup of PuTTY software in the next tutorial.

Step 2 - Introduce the ssh command on Linux

In fact, PuTTY is the program I'm currently using to open a window and communicate with and log in to a local Linux server running text-only Debian version 8 on this sunny day in California.

login as: paul paul@192.168.0.15's password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Jan 25 22:46:21 2017 from 192.168.0.5 paul@fullstack:~$ clear

I should mention that our next project will be to review Linux commands for beginners. In the meantime, whatis will help those not familiar with the command line.

paul@fullstack:~$ date Fri Jan 27 10:15:20 PST 2017 paul@fullstack:~$ whatis whatis whatis (1) - display one-line manual page descriptions paul@fullstack:~$ whatis ssh ssh (1) - OpenSSH SSH client (remote login program)

The SSH client on Linux is just that. It's a command like most others, and here's a one sentence description that comes from the first line of the user manual for the ssh command.

paul@fullstack:~$ man ssh
SSH(1) BSD General Commands Manual SSH(1) NAME ssh — OpenSSH SSH client (remote login program) SYNOPSIS ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q cipher | cipher-auth | mac | kex | key] [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command] DESCRIPTION ssh (SSH client) is a program for logging into a remote machine and for executing commands on a remote machine. It is intended to replace rlogin and rsh, and provide secure encrypted communications between two untrusted hosts over an insecure network. X11 connections, arbitrary TCP ports and UNIX-domain sockets can also be forwarde over the secure channel. ssh connects and logs into the specified hostname (with optional user name). The user must prove his/her identity to the remote machine using one of several methods depending on the protocol version used (see below). If command is specified, it is executed on the remote host instead of a login shell. The options are as follows: (830 lines trimmed)

(Help on commmands in Linux can be found using the man command and the page for ssh is particularly long, at 858 lines!)

paul@fullstack:~$ whatis man man (1) - an interface to the on-line reference manuals man (7) - macros to format man pages

The ssh command conveniently shares a name with the SSH Protocol and you can access syntax help by typing ssh without options.

paul@fullstack:~$ ssh usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q cipher | cipher-auth | mac | kex | key] [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]

Don't be alarmed by how confusing this syntax looks, we're just interested in the most basic login method. ssh is more complicated than most commands and to quantify this, other commands average 15 or so different options, while ssh has over 40!

I'll cover some of the specifics shortly, but here, we would type ssh followed by the IP address 192.168.0.15, which is in FactorPad's local network, which I've already done when I used PuTTY on the front end on my system.

paul@fullstack:~$ ssh 192.168.0.15

Step 3 - Cover similarities for the Mac

Now if you have a Mac client on your end, then most of these commands work the same way, you just need to know where to find ssh.

Click on the magnifying glass, or use Command-Spacebar, then type Terminal. When I'm on my Mac, I mirror Linux keystrokes because most work the same way (but review the man page to make sure!).

Step 4 - Introduce PuTTY SSH for Windows

Now let's talk about Windows. So with Linux and macOS, the SSH program is native, right? On the Windows side it isn't, and you can read up on and think about the rationale for why Microsoft dragged its feet, but as a workaround third-party programs do exist.

Here is a link to a page on Wikipedia listing and comparing client-side SSH programs.

For the Windows client, the program that seems to get most attention, currently, is called PuTTY, and there are other mentions of tools within Cygwin, Win SCP and KiTTY.

Before we finish, let me recycle a document and I'll show you more here. As we discussed in the last tutorial on setting up SSH on the server side. So here, on the client side, we've accepted the default settings, and used the most basic method to log in, you know, the one with the IP address.

paul@fullstack:~$ cd notes paul@fullstack:~$ cp video0008.txt video009.txt paul@fullstack:~$ nano video0009.txt
GNU nano 2.2.6 File: video0009.txt Secure Shell (SSH) The easy way default settings ssh login install maintain The hard way configuration files ssh key login change ports users limiting failed attempts logging warning page tunneling ^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell

Remember the 40 options I mentioned? ssh gives you lots of functionality, especially in a high-security Internet-facing situation, which I dubbed the hard way, promising to revisit the details in later videos, because in 4 minutes here we're just scratching the surface.

I will remove server-related topics here and save this so we know what to tackle in later videos. I mainly wanted you to see how complicated SSH can get at the advanced level.

GNU nano 2.2.6 File: video0009.txt Secure Shell (SSH) The easy way default settings ssh login install maintain The hard way configuration files ssh key login tunneling ^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell

(The point is to keep these notes and return in a later tutorial.)

Step 5 - Next: PuTTY setup for Windows

This is a picture of our stack, which I'll be adding to on this open-ended journey to Data Science, and those fun projects on Statistics I mentioned.

  • Client : HTML, CSS, JavaScript
  • Software : Python Scientific Stack
  • Data : PostgreSQL, MySQL
  • OS : Linux (command line), Debian

Feel free to join at any time for what interests you.

Have a nice day.


What's Next?

There is a lot to learn about Data Science. Subscribe here and join us at our YouTube Channel.

  • To access all tutorials, click Outline.
  • To see the steps to install SSH on the server, click Back.
  • For PuTTY configurations, click Next.

Outline Back Next

~/ home  / tech  / full stack  / install ssh client



 
 
Keywords:
ssh client
ssh windows
ssh linux
ssh software
ssh mac
install ssh
ssh command
putty ssh
ssh secure shell
ssh tool
ssh client mac
ssh terminal windows
man ssh
ssh options
ssh tutorial