Introduction to SSH(Secure Shell) Keys
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 asymmetric 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