SSH(Secure Shell) is access credential that is used in the SSH Protocol. In other words, it is a cryptographic network protocol that is used for transferring encrypted data over network. It allows you to connect to a server, or multiple servers, without having you to remember or enter your password for each system that is to login remotely from one system into another.
It always comes in key pair:
- Public key – Everyone can see it, no need to protect it. (for encryption function)
- Private key – Stays in computer, must be protected. (for decryption function)
Key pairs can be of the following types:
- User Key – If public key and private key remain with the user.
- Host Key – If public key and private key are on a remote system.
- Session key – Used when large amount of data is to be transmitted.
How SSH Works ?
It uses assymetric cipher for performing encryption and decryption. There are many encryption methods:
rsa, dsa, ed25519 etc.
General procedure is :-
- Public keys from the local computers (system) are passed to the server which is to be accessed.
- Server then identifies if the public key is registered.
- If so, the server then creates a new secret key and encrypts it with the public key which was send to it via local computer.
- This encrypted code is send to the local computer.
- This data is unlocked by the private key of the system and is send to the server.
- Server after receiving this data verifies the local computer.
- SSH creates a route and all the encrypted data are transferred through it with no security issues.
SSH is key based authentication that is not prone to brute-force attack.
It is more convenient and secure than login ids and passwords (which can be stolen in middle). There is no exposure of valid credentials, if a server has been compromised.
Generating an SSH key pair:
Open your command prompt type : ssh-keygen Press enter It will ask you for a location. Press Enter for default location. If its already there, press 'y' to overwrite. You may enter passphrase as you like, press enter.
Example of generating an SSH Key pair in latest version of Windows 10 is given below:
Generating SSH keys on Windows, Linux and Mac:
OMAC OsX and Linux : terminal (build in) OWindows :- PuTTY
- How to Install Z Shell(zsh) on Linux?
- Shell-Metzner Sort
- Basic Operators in Shell Scripting
- String Operators | Shell Script
- How to Install and Configure Fish Shell in Ubuntu?
- Remove BST Keys in a given Range
- Node.js | Buffer.keys() Method
- Reset keys of array elements using PHP ?
- Python | Remove spaces from dictionary keys
- Merge two arrays keeping original keys in PHP
- How to iterate over the keys and values with ng-repeat in AngularJS ?
- Handling missing keys in Python dictionaries
- Python | Check if given multiple keys exist in a dictionary
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.