Unix Command To Generate Public Private Ssh Key

How do I generate ssh keys under Linux / UNIX / Mac OS X and *BSD operating systems for remote login?
SSH uses public-key cryptography to authenticate the remote computer and allow the remote computer to authenticate the user, if required. You can create ssh keys as follows on any Linux or UNIX-like operating systems including Mac OS X.[donotprint][/donotprint]
Advertisements
  1. You need your SSH public key and you will need your ssh private key. Keys can be generated with ssh-keygen. The private key must be kept on Server 1 and the public key must be stored on Server 2. This is completly described in the manpage of openssh, so I will quote a.
  2. Jun 13, 2019 This command makes a connection to the remote computer like the regular ssh command, but instead of allowing you to log in, it transfers the public SSH key. Ssh-copy-id dave@sulaco Although you are not logging in to the remote computer, you must still authenticate using a password.
  3. A key pair (the private and public keys) will have the same fingerprint; so in the case you can't remember which private key belong to which public key, find the match by comparing their fingerprints. The most voted answer by Marvin Vinto provides the fingerprint of a public SSH key file.

To do so follow these steps: Open up the Terminal. Type in the following command.

ssh-keygen command to Generate SSH Keys

The ssh-keygen command generates, manages and converts authentication keys for ssh client and server usage. Type the following command to generate ssh keys (open terminal and type the command):
$ ssh-keygen
Generate SSH keys looks as follows:

The above command creates ~/.ssh/ directory. So if your user name is vivek, than all files are stored in /home/vivek/.ssh/ or $HOME/.ssh/ directory as follows:

  • $HOME/.ssh/id_rsa – Your private key. Do not share this file with anyone. Keep it private
  • $HOME/.ssh/id_rsa.pub– Your public key.

Please note that the passphrase must be different from your current password and do not share keys or passphrase with anyone. Also, make sure you have correct and secure permissions on $HOME/.ssh/ directory:

SSH Keys Are Generated, What Next?

You need to copy $HOME/.ssh/id_rsa.pub file to remote server so that you can login using keys instead of the password. Use any one of the following command to copy key to remote server called vpn22.nixcraft.net.in for vivek user:
ssh-copy-id vivek@vpn22.nixcraft.net.in
On some *nix system such as OS X ssh-copy-id command may not be installed, use the following commands (when prompted provide the password for remote user account called vivek) to install/append the public key on remote host:
ssh vivek@vpn22.nixcraft.net.in 'umask 077; mkdir .ssh'
cat $HOME/.ssh/id_rsa.pub ssh vivek@vpn22.nixcraft.net.in 'cat >> .ssh/authorized_keys'

To login simply type:
ssh vivek@vpn22.nixcraft.net.in
The following command will help to remember passphrase
exec ssh-agent $SHELL
ssh-add
ssh vivek@vpn22.nixcraft.net.in

Unix Command To Generate Public Private Ssh Keys

Optional ssh-keygen command syntax for advance users

Download microsoft office 2010 professional plus key generator free. The following syntax specifies the 4096 of bits in the RSA key to creation (default 2048):
ssh-keygen -t rsa -b 4096 -f ~/.ssh/aws.key -C 'My AWs cloud key'
Where,

  • -t rsa : Specifies the type of key to create. The possible values are “rsa1” for protocol version 1 and “dsa”, “ecdsa”, “ed25519”, or “rsa” for protocol version 2.
  • -b 4096 : Specifies the number of bits in the key to create.
  • -f ~/.ssh/aws.key : Specifies the filename of the key file.
  • -C 'My AWs cloud key' : Set a new comment.

Unix Command To Generate Public Private Ssh Key Id

Now install the ~/.ssh/aws.key, run:
ssh-copy-id -i ~/.ssh/aws.key user@aws-server-ip
Test it with the ssh command:
ssh -i ~/.ssh/aws.key ec2-user@aws-server-ip
See “How To Set up SSH Keys on a Linux / Unix System” for more info.

Conclusion

Unix Command To Generate Public/private Ssh Key

You learned how to create and generate ssh keys using the ssh-keygen command.

  • Howto Linux / UNIX setup SSH with DSA public key authentication (password less login)
  • sshpass: Login To SSH Server / Provide SSH Password Using A Shell Script
  • keychain: Set Up Secure Passwordless SSH Access For Backup Scripts
  • Openssh man pages here
  • Man pages – ssh-keygen(1)

Unix Command To Generate Public Private Ssh Key File

ADVERTISEMENTS