SlideShare a Scribd company logo
Hemant Shah
SSH
The Secure Shell
Platform: Linux and Unix
UniForum
Chicago
June 26, 2007
shahhe@gmail.com
June 26, 2007 Copyright Hemant Shah 2
What is SSH?
What is SSH?
June 26, 2007 Copyright Hemant Shah 3
• The Secure Shell
• It is a protocol not a product
• Software based approach to network security
• Encrypts the data sent between the computers
• Client/Server architecture
• Comes with all Linux distribution, Mac OS X, AIX, Sun Solaris,
OpenBSD and other Unix variants
• Ported to other operating systems, such as Windows, Palm OS,
Amiga, etc.
• Other clients, such as, scp, sftp, etc. are also available
• Replacement for telnet, rlogin, rsh, rcp, ftp, etc.
What is SSH?
What is SSH?
June 26, 2007 Copyright Hemant Shah 4
What is SSH Not
What is SSH Not
June 26, 2007 Copyright Hemant Shah 5
• It is not a true shell like csh, ksh, sh, etc.
• It is not a command interpreter
• It creates secure channel for running commands on remote
computer
• It is not a complete security solution
• It will not protect against trojans, viruses, etc.
What SSH is
What SSH is NOT
NOT
June 26, 2007 Copyright Hemant Shah 6
History
History
June 26, 2007 Copyright Hemant Shah 7
• In 1995, Tatu Ylönen, a researcher at Helsinki University
designed the first version of the protocol (now called SSH-1)
• In July of 1995, he released SSH1 as free software
• In December of 1995 he formed SSH Communication Security to
market and develop SSH
• In 1996 SSH-2 was developed, it was incompatible with SSH-1
• SCS released SSH-2 in 1998 and had more restrictive license
• IETF formed group called SECSH to standardize the protocol
• OpenSSH, free implementation of SSH-2 protocol was released
from OpenBSD project.
• In 2006 IETF SECSH group released SSH-2 as internet standard
(RFC 4251)
History
History
June 26, 2007 Copyright Hemant Shah 8
Terminology
Terminology
June 26, 2007 Copyright Hemant Shah 9
SSH - Generic term used for SSH protocols
ssh - Client command for running remote command
sshd - Server program
SSH-1 - Version 1 of the protocol
SSH-2 - Version 2 of the protocol
OpenSSH - Product from open BSD project
Terminology
Terminology
June 26, 2007 Copyright Hemant Shah 10
SSH Architecture
SSH Architecture
June 26, 2007 Copyright Hemant Shah 11
SSH Architecture
SSH Architecture
Anw@dc%9r&6cbditop*dekisn@h
Network
Authentication
???
ssh client
ssh server
June 26, 2007 Copyright Hemant Shah 12
SSH Layers
SSH Layers
Ethernet
Network Access
Layer
IP
Internet Layer
TCP
Transport Layer
ssh-transport
Initial key exchange and server authentication,
setup encryption
ssh-userauth
User authentication using public key, password,
host based, etc.
ssh-connection
Session multiplexing, X11 and port forwarding,
remote command execution, SOCKS proxy, etc.
Application
Layer
June 26, 2007 Copyright Hemant Shah 13
• A cryptographic handshake is made with the server
• The connection between client and remote server is encrypted
using symmetric cipher
• Client authenticates itself
• Client can now interact safely with remote server over encrypted
connection
SSH Connection Sequence
SSH Connection Sequence
June 26, 2007 Copyright Hemant Shah 14
• Strong encryption
• Strong authentication
• Authorization
• Integrity of communication
• Forwarding or tunneling
SSH Features
SSH Features
June 26, 2007 Copyright Hemant Shah 15
• Eavesdropping of data transmitted over the network
• Manipulation of data at intermediate elements in the network
(e.g. routers)
• IP address spoofing where an attack hosts pretends to be a
trusted host by sending packets with the source address of the
trusted host
• DNS spoofing of trusted host names/IP addresses
• IP source routing
SSH will protect against
SSH will protect against
June 26, 2007 Copyright Hemant Shah 16
• Incorrect configuration or usage
• A compromised root account
 If you login from a host to a server and an attacker has
control of root on either side, he/she can listen to your
session by reading from the pseudo-terminal device, even
though SSH is encrypted on the network, SSH must
communicate in clear text with the terminal device
• Insecure home directories: if an attacker can modify files in your
home directory (e.g. via NFS) he may be able to fool SSH
SSH will not protect against
SSH will not protect against
June 26, 2007 Copyright Hemant Shah 17
Installing SSH
Installing SSH
June 26, 2007 Copyright Hemant Shah 18
You may download the source from
http://www.openssh.com/
Read installation instructions to check if you have pre-requisite
packages and libraries.
Downloading Source Code
Downloading Source Code
June 26, 2007 Copyright Hemant Shah 19
gtar -xzf openssh-4.5p1.tar.gz
cd openssh-4.5p1
./configure
make
make install
Building and installing
Building and installing OpenSSH
OpenSSH
June 26, 2007 Copyright Hemant Shah 20
Configuration files
Configuration files
June 26, 2007 Copyright Hemant Shah 21
• SSH has two different sets of configuration files
 System wide configuration files
 User specific configuration files
SSH Configuration Files
SSH Configuration Files
June 26, 2007 Copyright Hemant Shah 22
• The system wide configuration are stored in /etc/ssh directory
ssh_config - Client configuration file. It is overridden by
configuration file in user's home directory
sshd_config - Configuration file for sshd server daemon
ssh_host_dsa_key - The DSA private key used by the sshd
daemon
ssh_host_dsa_key.pub - The DSA public key used by the sshd
daemon
ssh_host_rsa_key - The RSA private key used by the sshd
daemon for version 2 of the SSH protocol
ssh_host_rsa_key.pub - The RSA public key used by the sshd
for version 2 of the SSH protocol
System wide configuration files
System wide configuration files
June 26, 2007 Copyright Hemant Shah 23
sshd.pid - Server's PID is stored in this file
System wide configuration files
System wide configuration files
June 26, 2007 Copyright Hemant Shah 24
• The user specific configuration files are stored in
~UserName/.ssh directory
authorized_keys2 - This file holds a list of authorized public
keys for users. When the client connects to a server, the server
authenticates the client by checking its signed public key stored
within this file
id_dsa - Contains the DSA private key of the user
id_dsa.pub - The DSA public key of the user
id_rsa - The RSA private key of the user
id_rsa.pub - The RSA public key of the user
known_hosts - This file contains DSA host keys of SSH servers
accessed by the user. This file is very important for ensuring that
the SSH client is connecting the correct SSH server
User specific configuration files
User specific configuration files
June 26, 2007 Copyright Hemant Shah 25
config - Client configuration file
User specific configuration files
User specific configuration files
June 26, 2007 Copyright Hemant Shah 26
• Specify authentication methods supported
• Specify SSH protocols supported
• Need to make trade-offs between security and easy-of use
• Behavior of the server can be controlled in following order:
 Compiling time configuration
 Configuration file
 Command line options
Configuration files
Configuration files
June 26, 2007 Copyright Hemant Shah 27
• Server configuration is stored in /etc/ssh/sshd_config file
• Client configuration is stored in /etc/ssh/ssh_config and
~/.ssh/config files.
• The file contains two types of entries
 Comment or blank line
 Key/Value pair
Example:
# This is a comment line
Port 22
Configuration file syntax
Configuration file syntax
June 26, 2007 Copyright Hemant Shah 28
Server Recommendations
Server Recommendations
June 26, 2007 Copyright Hemant Shah 29
Protocol
Possible values are 1 or 2
Protocol 2
Protocol 1 has been deprecated because of vulnerabilities, it is
recommended that you do not support protocol 1.
Server recommendations
Server recommendations
June 26, 2007 Copyright Hemant Shah 30
Port
Possible values are any integer less than 65535
Port 22
Server recommendations
Server recommendations
June 26, 2007 Copyright Hemant Shah 31
ListenAddress
IP address of the system and optionally port number
ListenAddress 10.90.10.101
ListenAddress 10.90.10.102:12345
By default sshd will listen to all network interfaces, if you want to
limit sshd to service only certain interface then use this option.
Server recommendations
Server recommendations
June 26, 2007 Copyright Hemant Shah 32
TCPKeepAlive
Send TCP keepalive messages
TCPKeepAlive yes
If keepalive messages are not sent then server may not realize that
the client has crashed. It will keep running and use resources.
However, this means that connections will die if the route is down
temporarily.
Server recommendations
Server recommendations
June 26, 2007 Copyright Hemant Shah 33
Compression
CompressionLevel
Compression yes
CompressionLevel 6
Not needed on intranet.
Server recommendations
Server recommendations
June 26, 2007 Copyright Hemant Shah 34
IgnoreRhosts
IgnoreRhosts yes
Server
Server recommendations
recommendations
June 26, 2007 Copyright Hemant Shah 35
UsePrivilegeSeparation
UsePrivilegeSeparation yes
Separates privileges by creating an unprivileged child process to
deal with incoming network traffic.
Server
Server recommendations
recommendations
June 26, 2007 Copyright Hemant Shah 36
PermitRootLogin
PermitRootLogin no
Specifies whether root can login using ssh. The argument must be
``yes'', ``without-password'', ``forced-commands-only'' or ``no''.
The default is ``yes''.
Server
Server recommendations
recommendations
June 26, 2007 Copyright Hemant Shah 37
Subsystem
Subsystem sftp /usr/local/libexec/sftp-server
Configures external subsystem (e.g. sftp server).
Server recommendations
Server recommendations
June 26, 2007 Copyright Hemant Shah 38
Client Recommendations
Client Recommendations
June 26, 2007 Copyright Hemant Shah 39
Host
Host hostname or wildcard pattern.
Restricts the following configuration, up to the next Host keyword,
to the matching host(s).
Client
Client recommendations
recommendations
June 26, 2007 Copyright Hemant Shah 40
BatchMode
BatchMode no
If set to yes, passphrase/password querying is disabled. This
option is useful in scripts and other batch jobs.
Client recommendations
Client recommendations
June 26, 2007 Copyright Hemant Shah 41
ForwardX11
ForwardX11 yes
Client
Client recommendations
recommendations
June 26, 2007 Copyright Hemant Shah 42
ForwardX11Trusted
ForwardX11Trusted yes
If the this option is set to ``yes'' then remote X11 clients will have
full access to the original X11 display. If this option is set to ``no''
then remote X11 clients will be considered untrusted and prevented
from stealing or tampering with data belonging to trusted X11
clients.
Client
Client recommendations
recommendations
June 26, 2007 Copyright Hemant Shah 43
IdentityFile
IdentityFile /path/to/private/key/file
Client recommendations
Client recommendations
June 26, 2007 Copyright Hemant Shah 44
HostName
HostName real hostname or IP address
Specifies the real host name to log into. This can be used to
specify nicknames or abbreviations for hosts.
Client recommendations
Client recommendations
June 26, 2007 Copyright Hemant Shah 45
LocalForward
LocalForward port host:port
Specifies that a TCP/IP port on the local machine be forwarded
over the secure channel to the specified host and port from the
remote machine.
Client recommendations
Client recommendations
June 26, 2007 Copyright Hemant Shah 46
Port
Port port_number
Specifies the port number to connect on the remote host.
Client recommendations
Client recommendations
June 26, 2007 Copyright Hemant Shah 47
• To check the configuration run following command:
sshd -t
Checking configuration
Checking configuration
June 26, 2007 Copyright Hemant Shah 48
Key Management
Key Management
June 26, 2007 Copyright Hemant Shah 49
• ssh authenticates users using key pairs
 private key
 public key
Key pairs
Key pairs
June 26, 2007 Copyright Hemant Shah 50
• ssh-keygen - Create key pairs
• ssh-agent - Holds private key in memory
• ssh-add - Adds key to the key agent
Key management commands
Key management commands
June 26, 2007 Copyright Hemant Shah 51
shahhe@kubuntu1:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key
(/home/shahhe/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/home/shahhe/.ssh/id_dsa.
Your public key has been saved in
/home/shahhe/.ssh/id_dsa.pub.
The key fingerprint is:
99:51:ac:02:10:0c:d4:55:09:cc:86:36:cf:59:d0:33
Generating key pairs
Generating key pairs
June 26, 2007 Copyright Hemant Shah 52
shahhe@kubuntu1:~$ cat ~/.ssh/id_dsa
-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQDPmC7jSBnJMoQ8o6/cF4GUDP/gsCqonA0UGs2g/92N8qVTxxZg
U3MgZAQ96FAsaGKFDfsxoqbp1eXX7IXUS+erPOMQnDtbooLgZN3VpvStvV/hulnn
HoFJoDmoE5MnrY0Su93jZe2mPp4hOrYYQu0/8r3YRFtAzz6TCauHFxO4DQIVAJYo
apGVvbg8J1rAefSBReOef/iXAoGBAJUXbyDtR0wpyz5UKT11FmVS/a34ST9Lfzld
OjR38c9sRCf8klRZ6IuqoLUZZ3jSo56+SRsraFQReCB5GLWPx5qKzHz9xi9XFseT
aCb3Qh70EbiP3uAFqnTvk2K8voKC4dNIEXZ7SZXZUsWBImLaYXf/scvL7fMlMy9d
fCMf8By2AoGAGEdK17lrlD7zfWUVyJm+26ZaQ/QU4Yhff6Cfoe1lnq/1UmT6SEVf
SZWsj9n8fj7Ez8l03gU/g+otZXDcsS6OmNMooWkADIbkHfQ6oeoK1h/3z0hV8TY4
HnOtMZuHJMf1LPFNvINbenLS+qldGvi19aTxZUkcQJiHdpr6GR3jn9cCFE9xHd8q
Y8klJEyIPYK+KQ4UrbhZ
-----END DSA PRIVATE KEY-----
Generating key pairs
Generating key pairs
June 26, 2007 Copyright Hemant Shah 53
shahhe@kubuntu1:~$ cat ~/.ssh/id_dsa.pub
ssh–dss AAAAB3NzaC1kc3MAAACBAM+YLuNIGckyhDyjr9wXgZQM/+CwKqicDRQazaD/3Y3
ypVPHFmBTcyBkBD3oUCxoYoUN+zGipunV5dfshdRL56s84xCcO1uiguBk3dWm9K29X+G6We
cegUmgOagTkyetjRK73eNl7aY+niE6thhC7T/yvdhEW0DPPpMJq4cXE7gNAAAAFQCWKGqRl
b24PCdawHn0gUXjnn/4lwAAAIEAlRdvIO1HTCnLPlQpPXUWZVL9rfhJP0t/OV06NHfxz2xE
J/ySVFnoi6qgtRlneNKjnr5JGytoVBF4IHkYtY/HmorMfP3GL1cWx5NoJvdCHvQRuI/e4AW
qdO+TYry+goLh00gRdntJldlSxYEiYtphd/+xy8vt8yUzL118Ix/wHLYAAACAGEdK17lrlD
7zfWUVyJm+26ZaQ/QU4Yhff6Cfoe1lnq/1UmT6SEVfSZWsj9n8fj7Ez8l03gU/g+otZXDcs
S6OmNMooWkADIbkHfQ6oeoK1h/3z0hV8TY4HnOtMZuHJMf1LPFNvINbenLS+qldGvi19aTx
ZUkcQJiHdpr6GR3jn9c= shahhe@kubuntu1
Generating key pairs
Generating key pairs
June 26, 2007 Copyright Hemant Shah 54
Executing commands
Executing commands
June 26, 2007 Copyright Hemant Shah 55
shahhe@kubuntu1:~$ ssh shah@xnet.com
Last login: Mon Jun 18 21:26:33 2007 from d47-69-253-190.
* Problems? Questions? Email: help@xnet.com
* Type "whatsup" to see information posted to our "What's Up?"
page.
You have mail.
You have 17 read messages.
You have no new mail.
/home/customer/shah
{shah@typhoon} 1>
Logging into remote system
Logging into remote system
June 26, 2007 Copyright Hemant Shah 56
shahhe@kubuntu1:~$ scp .profile shah@xnet.com:tmp/profile.kubuntu
.profile 100% 566 0.6KB/s 00:00
shahhe@kubuntu1:~$ scp shah@xnet.com:tmp/profile.kubuntu tmp/.
profile.kubuntu 100% 566 0.6KB/s 00:00
Copying file to remote system
Copying file to remote system
June 26, 2007 Copyright Hemant Shah 57
shahhe@kubuntu1:~$ ssh shah@xnet.com ls
Mail
News
bin
mail
public_html
tmp
Executing commands on remote system
Executing commands on remote system
June 26, 2007 Copyright Hemant Shah 58
shahhe@kubuntu1:~$ ssh -Y shah@xnet.com /opt/sfw/bin/xterm
Executing commands on remote system
Executing commands on remote system
June 26, 2007 Copyright Hemant Shah 59
Force execution of command
Force execution of command
June 26, 2007 Copyright Hemant Shah 60
• To force an execution of a command use command keyword in
authorized_key2 file.
command="~/bin/DumpEmpNames",no-port-forwarding ssh-dss
AAAAB3NzaC1kc3MAAACBAIB8B1MvYlWnVeyPE6bMwrTr1OM8O2HXiQQKq9801q
fmOf9x3QYZzXVFegdNYDtN4o1sr6T7bmCNvOTC7sZoglaFIbfQoHfmIexabVyz
xin/2d2Juof7YU53Zrx1BjHKzqQpCj6jx7FxjPqlLD0BvL9R3qoPIpJ6Jt0YvY
Ae4Zj9AAAAFQDoejxCMgfZ0O/Zxwxn3mFidTpogQAAAIBDQvrhRsDFhA1UUkBO
203pVujfnNYF7X58mD/WPGZ+Z4aR8dGuD21X7hC6M8ko9a9wLLYigELSkUiWps
VZ/NJyBxhrCCD3YCNXeltJ7L0KaWGP96H2KkDtYsP7RMhAmztVpmlOrPzXbIpU
3jpq8dRJqUksG8mq2dbXPBWgh9xHyQAAAIBG9iwGfjPLDTH1niXk5tbZQUuEGk
GZzCaBw8jJlKPXMWeE7rVmBXV5sC/zhcX3OAXUNj8OUpafxFZxbxtmnzIgnehW
duWTWmiQPOi2f8oV9fCulpFnYWGNn4V4hmqDlScWNoIe3ObV05WTerdyJAY8bv
2Zfh9EJGEJvFFerdur/g== Key for Dumping active user names.
Force execution of command
Force execution of command
June 26, 2007 Copyright Hemant Shah 61
• Execute command as follows:
ssh -i ~/keys/DumpEmpNames.dsa user@remotehost
Force execution of command
Force execution of command
June 26, 2007 Copyright Hemant Shah 62
Options for authorized_keys2 file
Options for authorized_keys2 file
Disable X11 forwarding
no-x11-forwarding
Do not allocate TTY
no-pty
Disable port forwarding
no-port-forwarding
Disable forwarding agent
no-agent-forwarding
Limit incoming hosts
from="host or ip address"
Set environment variable
environment="variable=value"
Specify a force command
command="command name"
Meaning
Option
June 26, 2007 Copyright Hemant Shah 63
Port forwarding
Port forwarding
June 26, 2007 Copyright Hemant Shah 64
Insecure
Port forwarding
Port forwarding
Client App Server App
ssh client ssh server
Secure
June 26, 2007 Copyright Hemant Shah 65
• Create SSH tunnel
ssh -f -N -L10112:localhost:80 www.example.com
• Add to ~/.ssh/config file and run ssh command
Host webtunnel
User shahhe
Hostname www.example.com
LocalForward 10112 www.example.com:80
ssh -f -N webtunnel
Port
Port forwarding
forwarding
June 26, 2007 Copyright Hemant Shah 66
• Start application using port on localhost
firefox http://localhost:10112
Port forwarding
Port forwarding
June 26, 2007 Copyright Hemant Shah 67
Agent forwarding
Agent forwarding
June 26, 2007 Copyright Hemant Shah 68
You want to login to the computer at work from your home
computer or from from hotel while traveling. The computer at work
is behind the firewall so you cannot connect to it directly.
You are allowed to connect to a bastion host, but are not allowed to
store private keys on it.
What can you do?
Agent forwarding
Agent forwarding
June 26, 2007 Copyright Hemant Shah 69
Work
Bastion
Home
Agent Forwarding
Agent Forwarding
ssh
ssh
sshd
(proxy agent)
sshd
ssh
Login
ssh
June 26, 2007 Copyright Hemant Shah 70
Port 46464
Protocol 2
PasswordAuthentication no
X11Forwarding yes
Compression no
Subsystem sftp /usr/libexec/sftp-server
sshd
sshd configuration on bastion host
configuration on bastion host
June 26, 2007 Copyright Hemant Shah 71
The configuration is stored in ~/.ssh/tunnel.cfg file.
Host *
ForwardX11 yes
ForwardAgent yes
NoHostAuthenticationForLocalhost yes
Host bastionhost
User RemoteUser
IdentityFile /home/LocalUser/.ssh/work_dsa
HostName 69.2.50.60
Port 46464
ssh
ssh tunnel configuration on home system
tunnel configuration on home system
June 26, 2007 Copyright Hemant Shah 72
Host *
ForwardX11 yes
ForwardAgent yes
NoHostAuthenticationForLocalhost yes
Host portmap
HostName localhost
LocalForward 10001 10.60.80.101:22
LocalForward 10002 10.60.80.102:22
Host host1
User RemoteUser
IdentityFile /home/LocalUser/.ssh/work_dsa
HostName localhost
Port 10001
Host host2
User RemoteUser
IdentityFile /home/LocalUser/.ssh/work_dsa
HostName localhost
Port 10002
ssh
ssh client configuration on home system
client configuration on home system
June 26, 2007 Copyright Hemant Shah 73
• Generate key with password
• Store private key on Home system
• Store public key on Bastion host
• Store public key on Work system
Setting Key Pair
Setting Key Pair
June 26, 2007 Copyright Hemant Shah 74
Do the following on the HOME system:
• Start ssh-agent and add the key
ssh-agent $SHELL
ssh-add ~/.ssh/work_dsa
• Create tunnel to bastion host
ssh -f -N -F ~/.ssh/tunnel.cfg bastionhost
ssh -f -N UserName@portmap
• Login in to work systems
ssh host1
ssh host2
Login into work systems
Login into work systems
June 26, 2007 Copyright Hemant Shah 75
Environment variables
Environment variables
June 26, 2007 Copyright Hemant Shah 76
Environment variables
Environment variables
/dev/pts/48
Name of TTY
SSH_TTY
10.90.10.107 45756 22
Client socket
information
SSH_CLIENT
/tmp/ssh-FcRCI22249/agent.22249
Path to socket
SSH_AUTH_SOCK
10.90.10.107 45756 10.90.10.182 22
Client and server
socket information
SSH_CONNECTION
Example
Meaning
Variable
June 26, 2007 Copyright Hemant Shah 77
Other
Other ssh
ssh based applications
based applications
June 26, 2007 Copyright Hemant Shah 78
• sshfs - ssh based file system client
http://fuse.sourceforge.net/sshfs.html
• sftp - secure file transfer. Part of OpenSSH
http://www.openssh.com/
Other
Other ssh
ssh based applications
based applications
June 26, 2007 Copyright Hemant Shah 79
PuTTY
TTSSH
Cygwin
MSSH
WinSCP
FileZilla
OpenSSH
OpenSSH alternatives for windows
alternatives for windows
June 26, 2007 Copyright Hemant Shah 80
Advantages of
Advantages of using
using ssh
ssh
June 26, 2007 Copyright Hemant Shah 81
• Proven technology
• Strong encryption
• Both free and commercial versions exist
• Runs on many platforms
• Tunneling of ports works well and can be used for simple VPNs
• Many authentication methods supported
• Can be SOCKS5 proxy aware
• Use it instead of VPN
Advantages
Advantages
June 26, 2007 Copyright Hemant Shah 82
Disadvantages of using
Disadvantages of using ssh
ssh
June 26, 2007 Copyright Hemant Shah 83
• Port ranges & dynamic ports can't be forwarded
• SSH server daemon:
 Cannot restrict what ports may or may not be forwarded, per user
 When a user is authenticated by password, the client's RSA identity
is not verified (against ssh_known_hosts). The verification only
takes place when .[sr]hosts trust is used
• Port forwarding can also introduce security problems. The SSH
server doesn't allow detailed configuration of what forwarding is
allowed from what client to what server etc.
• A client on the Internet that uses SSH to access the Intranet, can
expose the Intranet by port forwarding
Disadvantages
Disadvantages
June 26, 2007 Copyright Hemant Shah 84
http://www.openssh.com/
http://fuse.sourceforge.net/sshfs.html
Barrett, D., Silverman, R., & Byrnes, R. (2005). SSH The
Definitive Guide, Second Edition. O'Reilly Media, Inc.
SSH FAQ
http://www.employees.org/~satch/ssh/faq/ssh-faq.html
Resources
Resources

More Related Content

Similar to 0696-ssh-the-secure-shell.pdf

Presentation nix
Presentation nixPresentation nix
Presentation nix
fangjiafu
 
Presentation nix
Presentation nixPresentation nix
Presentation nix
fangjiafu
 

Similar to 0696-ssh-the-secure-shell.pdf (20)

How To Setup SSH Keys on CentOS 7
How To Setup SSH Keys on CentOS 7How To Setup SSH Keys on CentOS 7
How To Setup SSH Keys on CentOS 7
 
Presentation nix
Presentation nixPresentation nix
Presentation nix
 
Presentation nix
Presentation nixPresentation nix
Presentation nix
 
An introduction to SSH
An introduction to SSHAn introduction to SSH
An introduction to SSH
 
Linux Security
Linux SecurityLinux Security
Linux Security
 
Using Secure Shell on Linux: What Everyone Should Know
Using Secure Shell on Linux: What Everyone Should KnowUsing Secure Shell on Linux: What Everyone Should Know
Using Secure Shell on Linux: What Everyone Should Know
 
Share File easily between computers using sftp
Share File easily between computers using sftpShare File easily between computers using sftp
Share File easily between computers using sftp
 
Ssh tunnel
Ssh tunnelSsh tunnel
Ssh tunnel
 
Ssh
SshSsh
Ssh
 
Secure shell protocol
Secure shell protocolSecure shell protocol
Secure shell protocol
 
Introducing bastion hosts for oracle cloud infrastructure v1.0
Introducing bastion hosts for oracle cloud infrastructure v1.0Introducing bastion hosts for oracle cloud infrastructure v1.0
Introducing bastion hosts for oracle cloud infrastructure v1.0
 
SSH - Secure Shell
SSH - Secure ShellSSH - Secure Shell
SSH - Secure Shell
 
tutorial-ssh.pdf
tutorial-ssh.pdftutorial-ssh.pdf
tutorial-ssh.pdf
 
RHCE (RED HAT CERTIFIED ENGINEERING)
RHCE (RED HAT CERTIFIED ENGINEERING)RHCE (RED HAT CERTIFIED ENGINEERING)
RHCE (RED HAT CERTIFIED ENGINEERING)
 
Meeting 5.2 : ssh
Meeting 5.2 : sshMeeting 5.2 : ssh
Meeting 5.2 : ssh
 
Security Concepts - Linux
Security Concepts - LinuxSecurity Concepts - Linux
Security Concepts - Linux
 
SSH.ppt
SSH.pptSSH.ppt
SSH.ppt
 
4. Centos Administration
4. Centos Administration4. Centos Administration
4. Centos Administration
 
Expo ciberseguridad
Expo ciberseguridadExpo ciberseguridad
Expo ciberseguridad
 
cibers
ciberscibers
cibers
 

Recently uploaded

CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 

Recently uploaded (20)

HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
AI for workflow automation Use cases applications benefits and development.pdf
AI for workflow automation Use cases applications benefits and development.pdfAI for workflow automation Use cases applications benefits and development.pdf
AI for workflow automation Use cases applications benefits and development.pdf
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdf
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturing
 
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdfRESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
Online resume builder management system project report.pdf
Online resume builder management system project report.pdfOnline resume builder management system project report.pdf
Online resume builder management system project report.pdf
 
Construction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptxConstruction method of steel structure space frame .pptx
Construction method of steel structure space frame .pptx
 
retail automation billing system ppt.pptx
retail automation billing system ppt.pptxretail automation billing system ppt.pptx
retail automation billing system ppt.pptx
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
ONLINE CAR SERVICING SYSTEM PROJECT REPORT.pdf
ONLINE CAR SERVICING SYSTEM PROJECT REPORT.pdfONLINE CAR SERVICING SYSTEM PROJECT REPORT.pdf
ONLINE CAR SERVICING SYSTEM PROJECT REPORT.pdf
 
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
NO1 Pandit Amil Baba In Bahawalpur, Sargodha, Sialkot, Sheikhupura, Rahim Yar...
 
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
 
shape functions of 1D and 2 D rectangular elements.pptx
shape functions of 1D and 2 D rectangular elements.pptxshape functions of 1D and 2 D rectangular elements.pptx
shape functions of 1D and 2 D rectangular elements.pptx
 
KIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and Clustering
KIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and ClusteringKIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and Clustering
KIT-601 Lecture Notes-UNIT-4.pdf Frequent Itemsets and Clustering
 
Scaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltageScaling in conventional MOSFET for constant electric field and constant voltage
Scaling in conventional MOSFET for constant electric field and constant voltage
 
Explosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdfExplosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdf
 
Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdf
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
 

0696-ssh-the-secure-shell.pdf

  • 1. Hemant Shah SSH The Secure Shell Platform: Linux and Unix UniForum Chicago June 26, 2007 shahhe@gmail.com
  • 2. June 26, 2007 Copyright Hemant Shah 2 What is SSH? What is SSH?
  • 3. June 26, 2007 Copyright Hemant Shah 3 • The Secure Shell • It is a protocol not a product • Software based approach to network security • Encrypts the data sent between the computers • Client/Server architecture • Comes with all Linux distribution, Mac OS X, AIX, Sun Solaris, OpenBSD and other Unix variants • Ported to other operating systems, such as Windows, Palm OS, Amiga, etc. • Other clients, such as, scp, sftp, etc. are also available • Replacement for telnet, rlogin, rsh, rcp, ftp, etc. What is SSH? What is SSH?
  • 4. June 26, 2007 Copyright Hemant Shah 4 What is SSH Not What is SSH Not
  • 5. June 26, 2007 Copyright Hemant Shah 5 • It is not a true shell like csh, ksh, sh, etc. • It is not a command interpreter • It creates secure channel for running commands on remote computer • It is not a complete security solution • It will not protect against trojans, viruses, etc. What SSH is What SSH is NOT NOT
  • 6. June 26, 2007 Copyright Hemant Shah 6 History History
  • 7. June 26, 2007 Copyright Hemant Shah 7 • In 1995, Tatu Ylönen, a researcher at Helsinki University designed the first version of the protocol (now called SSH-1) • In July of 1995, he released SSH1 as free software • In December of 1995 he formed SSH Communication Security to market and develop SSH • In 1996 SSH-2 was developed, it was incompatible with SSH-1 • SCS released SSH-2 in 1998 and had more restrictive license • IETF formed group called SECSH to standardize the protocol • OpenSSH, free implementation of SSH-2 protocol was released from OpenBSD project. • In 2006 IETF SECSH group released SSH-2 as internet standard (RFC 4251) History History
  • 8. June 26, 2007 Copyright Hemant Shah 8 Terminology Terminology
  • 9. June 26, 2007 Copyright Hemant Shah 9 SSH - Generic term used for SSH protocols ssh - Client command for running remote command sshd - Server program SSH-1 - Version 1 of the protocol SSH-2 - Version 2 of the protocol OpenSSH - Product from open BSD project Terminology Terminology
  • 10. June 26, 2007 Copyright Hemant Shah 10 SSH Architecture SSH Architecture
  • 11. June 26, 2007 Copyright Hemant Shah 11 SSH Architecture SSH Architecture Anw@dc%9r&6cbditop*dekisn@h Network Authentication ??? ssh client ssh server
  • 12. June 26, 2007 Copyright Hemant Shah 12 SSH Layers SSH Layers Ethernet Network Access Layer IP Internet Layer TCP Transport Layer ssh-transport Initial key exchange and server authentication, setup encryption ssh-userauth User authentication using public key, password, host based, etc. ssh-connection Session multiplexing, X11 and port forwarding, remote command execution, SOCKS proxy, etc. Application Layer
  • 13. June 26, 2007 Copyright Hemant Shah 13 • A cryptographic handshake is made with the server • The connection between client and remote server is encrypted using symmetric cipher • Client authenticates itself • Client can now interact safely with remote server over encrypted connection SSH Connection Sequence SSH Connection Sequence
  • 14. June 26, 2007 Copyright Hemant Shah 14 • Strong encryption • Strong authentication • Authorization • Integrity of communication • Forwarding or tunneling SSH Features SSH Features
  • 15. June 26, 2007 Copyright Hemant Shah 15 • Eavesdropping of data transmitted over the network • Manipulation of data at intermediate elements in the network (e.g. routers) • IP address spoofing where an attack hosts pretends to be a trusted host by sending packets with the source address of the trusted host • DNS spoofing of trusted host names/IP addresses • IP source routing SSH will protect against SSH will protect against
  • 16. June 26, 2007 Copyright Hemant Shah 16 • Incorrect configuration or usage • A compromised root account  If you login from a host to a server and an attacker has control of root on either side, he/she can listen to your session by reading from the pseudo-terminal device, even though SSH is encrypted on the network, SSH must communicate in clear text with the terminal device • Insecure home directories: if an attacker can modify files in your home directory (e.g. via NFS) he may be able to fool SSH SSH will not protect against SSH will not protect against
  • 17. June 26, 2007 Copyright Hemant Shah 17 Installing SSH Installing SSH
  • 18. June 26, 2007 Copyright Hemant Shah 18 You may download the source from http://www.openssh.com/ Read installation instructions to check if you have pre-requisite packages and libraries. Downloading Source Code Downloading Source Code
  • 19. June 26, 2007 Copyright Hemant Shah 19 gtar -xzf openssh-4.5p1.tar.gz cd openssh-4.5p1 ./configure make make install Building and installing Building and installing OpenSSH OpenSSH
  • 20. June 26, 2007 Copyright Hemant Shah 20 Configuration files Configuration files
  • 21. June 26, 2007 Copyright Hemant Shah 21 • SSH has two different sets of configuration files  System wide configuration files  User specific configuration files SSH Configuration Files SSH Configuration Files
  • 22. June 26, 2007 Copyright Hemant Shah 22 • The system wide configuration are stored in /etc/ssh directory ssh_config - Client configuration file. It is overridden by configuration file in user's home directory sshd_config - Configuration file for sshd server daemon ssh_host_dsa_key - The DSA private key used by the sshd daemon ssh_host_dsa_key.pub - The DSA public key used by the sshd daemon ssh_host_rsa_key - The RSA private key used by the sshd daemon for version 2 of the SSH protocol ssh_host_rsa_key.pub - The RSA public key used by the sshd for version 2 of the SSH protocol System wide configuration files System wide configuration files
  • 23. June 26, 2007 Copyright Hemant Shah 23 sshd.pid - Server's PID is stored in this file System wide configuration files System wide configuration files
  • 24. June 26, 2007 Copyright Hemant Shah 24 • The user specific configuration files are stored in ~UserName/.ssh directory authorized_keys2 - This file holds a list of authorized public keys for users. When the client connects to a server, the server authenticates the client by checking its signed public key stored within this file id_dsa - Contains the DSA private key of the user id_dsa.pub - The DSA public key of the user id_rsa - The RSA private key of the user id_rsa.pub - The RSA public key of the user known_hosts - This file contains DSA host keys of SSH servers accessed by the user. This file is very important for ensuring that the SSH client is connecting the correct SSH server User specific configuration files User specific configuration files
  • 25. June 26, 2007 Copyright Hemant Shah 25 config - Client configuration file User specific configuration files User specific configuration files
  • 26. June 26, 2007 Copyright Hemant Shah 26 • Specify authentication methods supported • Specify SSH protocols supported • Need to make trade-offs between security and easy-of use • Behavior of the server can be controlled in following order:  Compiling time configuration  Configuration file  Command line options Configuration files Configuration files
  • 27. June 26, 2007 Copyright Hemant Shah 27 • Server configuration is stored in /etc/ssh/sshd_config file • Client configuration is stored in /etc/ssh/ssh_config and ~/.ssh/config files. • The file contains two types of entries  Comment or blank line  Key/Value pair Example: # This is a comment line Port 22 Configuration file syntax Configuration file syntax
  • 28. June 26, 2007 Copyright Hemant Shah 28 Server Recommendations Server Recommendations
  • 29. June 26, 2007 Copyright Hemant Shah 29 Protocol Possible values are 1 or 2 Protocol 2 Protocol 1 has been deprecated because of vulnerabilities, it is recommended that you do not support protocol 1. Server recommendations Server recommendations
  • 30. June 26, 2007 Copyright Hemant Shah 30 Port Possible values are any integer less than 65535 Port 22 Server recommendations Server recommendations
  • 31. June 26, 2007 Copyright Hemant Shah 31 ListenAddress IP address of the system and optionally port number ListenAddress 10.90.10.101 ListenAddress 10.90.10.102:12345 By default sshd will listen to all network interfaces, if you want to limit sshd to service only certain interface then use this option. Server recommendations Server recommendations
  • 32. June 26, 2007 Copyright Hemant Shah 32 TCPKeepAlive Send TCP keepalive messages TCPKeepAlive yes If keepalive messages are not sent then server may not realize that the client has crashed. It will keep running and use resources. However, this means that connections will die if the route is down temporarily. Server recommendations Server recommendations
  • 33. June 26, 2007 Copyright Hemant Shah 33 Compression CompressionLevel Compression yes CompressionLevel 6 Not needed on intranet. Server recommendations Server recommendations
  • 34. June 26, 2007 Copyright Hemant Shah 34 IgnoreRhosts IgnoreRhosts yes Server Server recommendations recommendations
  • 35. June 26, 2007 Copyright Hemant Shah 35 UsePrivilegeSeparation UsePrivilegeSeparation yes Separates privileges by creating an unprivileged child process to deal with incoming network traffic. Server Server recommendations recommendations
  • 36. June 26, 2007 Copyright Hemant Shah 36 PermitRootLogin PermitRootLogin no Specifies whether root can login using ssh. The argument must be ``yes'', ``without-password'', ``forced-commands-only'' or ``no''. The default is ``yes''. Server Server recommendations recommendations
  • 37. June 26, 2007 Copyright Hemant Shah 37 Subsystem Subsystem sftp /usr/local/libexec/sftp-server Configures external subsystem (e.g. sftp server). Server recommendations Server recommendations
  • 38. June 26, 2007 Copyright Hemant Shah 38 Client Recommendations Client Recommendations
  • 39. June 26, 2007 Copyright Hemant Shah 39 Host Host hostname or wildcard pattern. Restricts the following configuration, up to the next Host keyword, to the matching host(s). Client Client recommendations recommendations
  • 40. June 26, 2007 Copyright Hemant Shah 40 BatchMode BatchMode no If set to yes, passphrase/password querying is disabled. This option is useful in scripts and other batch jobs. Client recommendations Client recommendations
  • 41. June 26, 2007 Copyright Hemant Shah 41 ForwardX11 ForwardX11 yes Client Client recommendations recommendations
  • 42. June 26, 2007 Copyright Hemant Shah 42 ForwardX11Trusted ForwardX11Trusted yes If the this option is set to ``yes'' then remote X11 clients will have full access to the original X11 display. If this option is set to ``no'' then remote X11 clients will be considered untrusted and prevented from stealing or tampering with data belonging to trusted X11 clients. Client Client recommendations recommendations
  • 43. June 26, 2007 Copyright Hemant Shah 43 IdentityFile IdentityFile /path/to/private/key/file Client recommendations Client recommendations
  • 44. June 26, 2007 Copyright Hemant Shah 44 HostName HostName real hostname or IP address Specifies the real host name to log into. This can be used to specify nicknames or abbreviations for hosts. Client recommendations Client recommendations
  • 45. June 26, 2007 Copyright Hemant Shah 45 LocalForward LocalForward port host:port Specifies that a TCP/IP port on the local machine be forwarded over the secure channel to the specified host and port from the remote machine. Client recommendations Client recommendations
  • 46. June 26, 2007 Copyright Hemant Shah 46 Port Port port_number Specifies the port number to connect on the remote host. Client recommendations Client recommendations
  • 47. June 26, 2007 Copyright Hemant Shah 47 • To check the configuration run following command: sshd -t Checking configuration Checking configuration
  • 48. June 26, 2007 Copyright Hemant Shah 48 Key Management Key Management
  • 49. June 26, 2007 Copyright Hemant Shah 49 • ssh authenticates users using key pairs  private key  public key Key pairs Key pairs
  • 50. June 26, 2007 Copyright Hemant Shah 50 • ssh-keygen - Create key pairs • ssh-agent - Holds private key in memory • ssh-add - Adds key to the key agent Key management commands Key management commands
  • 51. June 26, 2007 Copyright Hemant Shah 51 shahhe@kubuntu1:~$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/shahhe/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/shahhe/.ssh/id_dsa. Your public key has been saved in /home/shahhe/.ssh/id_dsa.pub. The key fingerprint is: 99:51:ac:02:10:0c:d4:55:09:cc:86:36:cf:59:d0:33 Generating key pairs Generating key pairs
  • 52. June 26, 2007 Copyright Hemant Shah 52 shahhe@kubuntu1:~$ cat ~/.ssh/id_dsa -----BEGIN DSA PRIVATE KEY----- MIIBuwIBAAKBgQDPmC7jSBnJMoQ8o6/cF4GUDP/gsCqonA0UGs2g/92N8qVTxxZg U3MgZAQ96FAsaGKFDfsxoqbp1eXX7IXUS+erPOMQnDtbooLgZN3VpvStvV/hulnn HoFJoDmoE5MnrY0Su93jZe2mPp4hOrYYQu0/8r3YRFtAzz6TCauHFxO4DQIVAJYo apGVvbg8J1rAefSBReOef/iXAoGBAJUXbyDtR0wpyz5UKT11FmVS/a34ST9Lfzld OjR38c9sRCf8klRZ6IuqoLUZZ3jSo56+SRsraFQReCB5GLWPx5qKzHz9xi9XFseT aCb3Qh70EbiP3uAFqnTvk2K8voKC4dNIEXZ7SZXZUsWBImLaYXf/scvL7fMlMy9d fCMf8By2AoGAGEdK17lrlD7zfWUVyJm+26ZaQ/QU4Yhff6Cfoe1lnq/1UmT6SEVf SZWsj9n8fj7Ez8l03gU/g+otZXDcsS6OmNMooWkADIbkHfQ6oeoK1h/3z0hV8TY4 HnOtMZuHJMf1LPFNvINbenLS+qldGvi19aTxZUkcQJiHdpr6GR3jn9cCFE9xHd8q Y8klJEyIPYK+KQ4UrbhZ -----END DSA PRIVATE KEY----- Generating key pairs Generating key pairs
  • 53. June 26, 2007 Copyright Hemant Shah 53 shahhe@kubuntu1:~$ cat ~/.ssh/id_dsa.pub ssh–dss AAAAB3NzaC1kc3MAAACBAM+YLuNIGckyhDyjr9wXgZQM/+CwKqicDRQazaD/3Y3 ypVPHFmBTcyBkBD3oUCxoYoUN+zGipunV5dfshdRL56s84xCcO1uiguBk3dWm9K29X+G6We cegUmgOagTkyetjRK73eNl7aY+niE6thhC7T/yvdhEW0DPPpMJq4cXE7gNAAAAFQCWKGqRl b24PCdawHn0gUXjnn/4lwAAAIEAlRdvIO1HTCnLPlQpPXUWZVL9rfhJP0t/OV06NHfxz2xE J/ySVFnoi6qgtRlneNKjnr5JGytoVBF4IHkYtY/HmorMfP3GL1cWx5NoJvdCHvQRuI/e4AW qdO+TYry+goLh00gRdntJldlSxYEiYtphd/+xy8vt8yUzL118Ix/wHLYAAACAGEdK17lrlD 7zfWUVyJm+26ZaQ/QU4Yhff6Cfoe1lnq/1UmT6SEVfSZWsj9n8fj7Ez8l03gU/g+otZXDcs S6OmNMooWkADIbkHfQ6oeoK1h/3z0hV8TY4HnOtMZuHJMf1LPFNvINbenLS+qldGvi19aTx ZUkcQJiHdpr6GR3jn9c= shahhe@kubuntu1 Generating key pairs Generating key pairs
  • 54. June 26, 2007 Copyright Hemant Shah 54 Executing commands Executing commands
  • 55. June 26, 2007 Copyright Hemant Shah 55 shahhe@kubuntu1:~$ ssh shah@xnet.com Last login: Mon Jun 18 21:26:33 2007 from d47-69-253-190. * Problems? Questions? Email: help@xnet.com * Type "whatsup" to see information posted to our "What's Up?" page. You have mail. You have 17 read messages. You have no new mail. /home/customer/shah {shah@typhoon} 1> Logging into remote system Logging into remote system
  • 56. June 26, 2007 Copyright Hemant Shah 56 shahhe@kubuntu1:~$ scp .profile shah@xnet.com:tmp/profile.kubuntu .profile 100% 566 0.6KB/s 00:00 shahhe@kubuntu1:~$ scp shah@xnet.com:tmp/profile.kubuntu tmp/. profile.kubuntu 100% 566 0.6KB/s 00:00 Copying file to remote system Copying file to remote system
  • 57. June 26, 2007 Copyright Hemant Shah 57 shahhe@kubuntu1:~$ ssh shah@xnet.com ls Mail News bin mail public_html tmp Executing commands on remote system Executing commands on remote system
  • 58. June 26, 2007 Copyright Hemant Shah 58 shahhe@kubuntu1:~$ ssh -Y shah@xnet.com /opt/sfw/bin/xterm Executing commands on remote system Executing commands on remote system
  • 59. June 26, 2007 Copyright Hemant Shah 59 Force execution of command Force execution of command
  • 60. June 26, 2007 Copyright Hemant Shah 60 • To force an execution of a command use command keyword in authorized_key2 file. command="~/bin/DumpEmpNames",no-port-forwarding ssh-dss AAAAB3NzaC1kc3MAAACBAIB8B1MvYlWnVeyPE6bMwrTr1OM8O2HXiQQKq9801q fmOf9x3QYZzXVFegdNYDtN4o1sr6T7bmCNvOTC7sZoglaFIbfQoHfmIexabVyz xin/2d2Juof7YU53Zrx1BjHKzqQpCj6jx7FxjPqlLD0BvL9R3qoPIpJ6Jt0YvY Ae4Zj9AAAAFQDoejxCMgfZ0O/Zxwxn3mFidTpogQAAAIBDQvrhRsDFhA1UUkBO 203pVujfnNYF7X58mD/WPGZ+Z4aR8dGuD21X7hC6M8ko9a9wLLYigELSkUiWps VZ/NJyBxhrCCD3YCNXeltJ7L0KaWGP96H2KkDtYsP7RMhAmztVpmlOrPzXbIpU 3jpq8dRJqUksG8mq2dbXPBWgh9xHyQAAAIBG9iwGfjPLDTH1niXk5tbZQUuEGk GZzCaBw8jJlKPXMWeE7rVmBXV5sC/zhcX3OAXUNj8OUpafxFZxbxtmnzIgnehW duWTWmiQPOi2f8oV9fCulpFnYWGNn4V4hmqDlScWNoIe3ObV05WTerdyJAY8bv 2Zfh9EJGEJvFFerdur/g== Key for Dumping active user names. Force execution of command Force execution of command
  • 61. June 26, 2007 Copyright Hemant Shah 61 • Execute command as follows: ssh -i ~/keys/DumpEmpNames.dsa user@remotehost Force execution of command Force execution of command
  • 62. June 26, 2007 Copyright Hemant Shah 62 Options for authorized_keys2 file Options for authorized_keys2 file Disable X11 forwarding no-x11-forwarding Do not allocate TTY no-pty Disable port forwarding no-port-forwarding Disable forwarding agent no-agent-forwarding Limit incoming hosts from="host or ip address" Set environment variable environment="variable=value" Specify a force command command="command name" Meaning Option
  • 63. June 26, 2007 Copyright Hemant Shah 63 Port forwarding Port forwarding
  • 64. June 26, 2007 Copyright Hemant Shah 64 Insecure Port forwarding Port forwarding Client App Server App ssh client ssh server Secure
  • 65. June 26, 2007 Copyright Hemant Shah 65 • Create SSH tunnel ssh -f -N -L10112:localhost:80 www.example.com • Add to ~/.ssh/config file and run ssh command Host webtunnel User shahhe Hostname www.example.com LocalForward 10112 www.example.com:80 ssh -f -N webtunnel Port Port forwarding forwarding
  • 66. June 26, 2007 Copyright Hemant Shah 66 • Start application using port on localhost firefox http://localhost:10112 Port forwarding Port forwarding
  • 67. June 26, 2007 Copyright Hemant Shah 67 Agent forwarding Agent forwarding
  • 68. June 26, 2007 Copyright Hemant Shah 68 You want to login to the computer at work from your home computer or from from hotel while traveling. The computer at work is behind the firewall so you cannot connect to it directly. You are allowed to connect to a bastion host, but are not allowed to store private keys on it. What can you do? Agent forwarding Agent forwarding
  • 69. June 26, 2007 Copyright Hemant Shah 69 Work Bastion Home Agent Forwarding Agent Forwarding ssh ssh sshd (proxy agent) sshd ssh Login ssh
  • 70. June 26, 2007 Copyright Hemant Shah 70 Port 46464 Protocol 2 PasswordAuthentication no X11Forwarding yes Compression no Subsystem sftp /usr/libexec/sftp-server sshd sshd configuration on bastion host configuration on bastion host
  • 71. June 26, 2007 Copyright Hemant Shah 71 The configuration is stored in ~/.ssh/tunnel.cfg file. Host * ForwardX11 yes ForwardAgent yes NoHostAuthenticationForLocalhost yes Host bastionhost User RemoteUser IdentityFile /home/LocalUser/.ssh/work_dsa HostName 69.2.50.60 Port 46464 ssh ssh tunnel configuration on home system tunnel configuration on home system
  • 72. June 26, 2007 Copyright Hemant Shah 72 Host * ForwardX11 yes ForwardAgent yes NoHostAuthenticationForLocalhost yes Host portmap HostName localhost LocalForward 10001 10.60.80.101:22 LocalForward 10002 10.60.80.102:22 Host host1 User RemoteUser IdentityFile /home/LocalUser/.ssh/work_dsa HostName localhost Port 10001 Host host2 User RemoteUser IdentityFile /home/LocalUser/.ssh/work_dsa HostName localhost Port 10002 ssh ssh client configuration on home system client configuration on home system
  • 73. June 26, 2007 Copyright Hemant Shah 73 • Generate key with password • Store private key on Home system • Store public key on Bastion host • Store public key on Work system Setting Key Pair Setting Key Pair
  • 74. June 26, 2007 Copyright Hemant Shah 74 Do the following on the HOME system: • Start ssh-agent and add the key ssh-agent $SHELL ssh-add ~/.ssh/work_dsa • Create tunnel to bastion host ssh -f -N -F ~/.ssh/tunnel.cfg bastionhost ssh -f -N UserName@portmap • Login in to work systems ssh host1 ssh host2 Login into work systems Login into work systems
  • 75. June 26, 2007 Copyright Hemant Shah 75 Environment variables Environment variables
  • 76. June 26, 2007 Copyright Hemant Shah 76 Environment variables Environment variables /dev/pts/48 Name of TTY SSH_TTY 10.90.10.107 45756 22 Client socket information SSH_CLIENT /tmp/ssh-FcRCI22249/agent.22249 Path to socket SSH_AUTH_SOCK 10.90.10.107 45756 10.90.10.182 22 Client and server socket information SSH_CONNECTION Example Meaning Variable
  • 77. June 26, 2007 Copyright Hemant Shah 77 Other Other ssh ssh based applications based applications
  • 78. June 26, 2007 Copyright Hemant Shah 78 • sshfs - ssh based file system client http://fuse.sourceforge.net/sshfs.html • sftp - secure file transfer. Part of OpenSSH http://www.openssh.com/ Other Other ssh ssh based applications based applications
  • 79. June 26, 2007 Copyright Hemant Shah 79 PuTTY TTSSH Cygwin MSSH WinSCP FileZilla OpenSSH OpenSSH alternatives for windows alternatives for windows
  • 80. June 26, 2007 Copyright Hemant Shah 80 Advantages of Advantages of using using ssh ssh
  • 81. June 26, 2007 Copyright Hemant Shah 81 • Proven technology • Strong encryption • Both free and commercial versions exist • Runs on many platforms • Tunneling of ports works well and can be used for simple VPNs • Many authentication methods supported • Can be SOCKS5 proxy aware • Use it instead of VPN Advantages Advantages
  • 82. June 26, 2007 Copyright Hemant Shah 82 Disadvantages of using Disadvantages of using ssh ssh
  • 83. June 26, 2007 Copyright Hemant Shah 83 • Port ranges & dynamic ports can't be forwarded • SSH server daemon:  Cannot restrict what ports may or may not be forwarded, per user  When a user is authenticated by password, the client's RSA identity is not verified (against ssh_known_hosts). The verification only takes place when .[sr]hosts trust is used • Port forwarding can also introduce security problems. The SSH server doesn't allow detailed configuration of what forwarding is allowed from what client to what server etc. • A client on the Internet that uses SSH to access the Intranet, can expose the Intranet by port forwarding Disadvantages Disadvantages
  • 84. June 26, 2007 Copyright Hemant Shah 84 http://www.openssh.com/ http://fuse.sourceforge.net/sshfs.html Barrett, D., Silverman, R., & Byrnes, R. (2005). SSH The Definitive Guide, Second Edition. O'Reilly Media, Inc. SSH FAQ http://www.employees.org/~satch/ssh/faq/ssh-faq.html Resources Resources