SSH Basics

What is it?


a.       Secure
Shell (SSH) is a cryptographic network protocol for secure data communication,
remote command-line login, remote command execution, and other secure network
services between two networked computers that connects, via a secure channel
over an insecure network, a server and a client (running SSH server and SSH
client programs, respectively).[1] The protocol specification distinguishes
between two major versions that are referred to as SSH-1 and SSH-2.

b.      The
best-known application of the protocol is for access to shell accounts on
Unix-like operating systems, but it can also be used in a similar fashion for
accounts on Windows. It was designed as a replacement for Telnet and other
insecure remote shell protocols such as the Berkeley rsh and rexec protocols,
which send information, notably passwords, in plaintext, rendering them
susceptible to interception and disclosure using packet analysis.[2] The
encryption used by SSH is intended to provide confidentiality and integrity of
data over an unsecured network, such as the Internet.

c.       SSH
uses public-key cryptography to authenticate the remote computer and allow it
to authenticate the user, if necessary

d.      SSH
is typically used to log into a remote machine and execute commands, but it
also supports tunneling, forwarding TCP ports and X11 connections; it can
transfer files using the associated SSH file transfer (SFTP) or secure copy
(SCP) protocols.

e.      The
standard TCP port 22 has been assigned for contacting SSH servers

An SSH client program is typically used for establishing connections to
an SSH daemon accepting remote connections. Both are commonly present on most
modern operating systems, including Mac OS X, most distributions of GNU/Linux,
OpenBSD, FreeBSD, NetBSD, Solaris and OpenVMS. Notably, Windows is one of the
few modern desktop/server OSs that does not include SSH by default.
Proprietary, freeware and open source versions of various levels of complexity
and completeness exist.

g.       SSH
is important in cloud computing to solve connectivity problems, avoiding the
security issues of exposing a cloud-based virtual machine directly on the
Internet. An SSH tunnel can provide a secure path over the Internet, through a
firewall to a virtual machine

2.       Windows

a.       OpenSSH

b.      PuTTY

It’s better to use PuTTY as the experience is
better and more native.