Skip to content

Latest commit

 

History

History
31 lines (19 loc) · 2.64 KB

File metadata and controls

31 lines (19 loc) · 2.64 KB

SSH (Secure Shell)

The SSH protocol (also referred to as Secure Shell) is a method for secure remote login from one computer to another. It provides several alternative options for strong authentication, and it protects communications security and integrity with strong encryption. It is a secure alternative to the non-protected login protocols (such as telnet, rlogin) and insecure file transfer methods (such as FTP).

The SSH transport layer is a secure, low level transport protocol. It provides strong encryption, cryptographic host authentication, and integrity protection. Authentication in this protocol level is host-based; this protocol does not perform user authentication. A higher level protocol for user authentication can be designed on top of this protocol. The protocol has been designed to be simple and flexible to allow parameter negotiation, and to minimize the number of round-trips. The key exchange method, public key algorithm, symmetric encryption algorithm, message authentication algorithm, and hash algorithm are all negotiated. It is expected that in most environments, only 2 round-trips will be needed for full key exchange, server authentication, service request, and acceptance notification of service request. The worst case is 3 round-trips. When used over TCP/IP, the server normally listens for connections on port 22.

How does the SSH protocol work

The protocol works in the client-server model, which means that the connection is established by the SSH client connecting to the SSH server. The SSH client drives the connection setup process and uses public key cryptography to verify the identity of the SSH server. After the setup phase the SSH protocol uses strong symmetric encryption and hashing algorithms to ensure the privacy and integrity of the data that is exchanged between the client and server.

The figure below presents a simplified setup flow of a secure shell connection

SSH client-server communication flowchart

Example usage

  1. Using SSH to get the secure access of the device to do troubleshooting or configuration.

For example, a popular tool for network device automation called Ansible uses SSH to connect to devices and execute playbooks, which are collections of configuration tasks defined in YAML. Ansible uses SSH to securely deliver these commands to the device and manage its configuration.

As we have already deployed a containerlab we can SSH into the device to look around or do whatever!

ssh clab-srlceos01-srl@172.20.20.2
SSH usage