Nov 10, 2011 How to Generate A Public/Private SSH Key Linux By Damien – Posted on Nov 10, 2011 Nov 18, 2011 in Linux If you are using SSH frequently to connect to a remote host, one of the way to secure the connection is to use a public/private SSH key so no password is transmitted over the network and it can prevent against brute force attack.

The SSH protocol recommended a method for remote login and remote file transfer which provides confidentiality and security for data exchanged between two server systems. The SSH depends upon the use of public key cryptography. The OpenSSH server offers this kind of setup under Linux or Unix-like system. This how-to covers generating and using ssh public keys for automated usage such as:

  1. Automated Login using the shell scripts
  2. Making backups
  3. Run commands from the shell prompt and more
  4. Login without password

How to configure SSH Public key-based authentication for a Linux/Unix

The steps and commands are as follows:

  1. On your local system type: ssh-keygen
  2. Install public key into remote server: ssh-copy-id [email protected]
  3. Use ssh for password less login: ssh [email protected]

Let us see all commands in details.

Generating SSH Keys

First, log on to your workstation. For example, log on to workstation called as vivek user. Please refer the following sample setup. You will be logged in, on your local system, AS THE USER you wish to make passwordless ssh connections.
To create the cryptographic keys on your local system powered by FreeBSD/Linux/macOS/ UNIX workstation, enter:
ssh-keygen -t rsa
Assign the pass phrase (press [enter] key twice if you don’t want a passphrase). It will create 2 files in ~/.ssh directory as follows:

  • ~/.ssh/id_rsa : identification (private) key
  • ~/.ssh/ : public key

How to copy a public ley (~/.ssh/ to your server

Use the scp command to copy the (public key) from your local system to remote server as authorized_keys file, this is know as, “installing the public key to server”:
scp ~/.ssh/ [email protected]:~/.ssh/authorized_keys
Another option is to use the ssh-copy-id command as follows from your local workstation:
ssh-copy-id [email protected]
ssh-copy-id -i ~/.ssh/ [email protected]

How to login to your remote server using SSH keys

From your local system (e.g. FreeBSD/macOS/Linux/Unix workstation) type the following command:
ssh [email protected]
ssh [email protected]

Changing the pass-phrase on workstation

To change a passphrase for your ssh keys, use the ssh-keygen command as follows:
ssh-keygen -p
cd ~/.ssh/
ssh-keygen -f id_rsa -p


How to use ssh-agen command

You can use the ssh-agent command to avoid continues passphrase typing at the CLI:
ssh-agent $SHELL

Now ssh server will not use prompt for the password. Above two commands can be added to your ~/.bash_profile file so that as soon as you login into workstation you can set the agent.

Generate Keys On Linux Between Servers 1

Deleting the keys hold by ssh-agent

To list keys, enter:
ssh-add -l
To delete all keys, enter:
ssh-add -D
To remove specific key, enter:
ssh-add -d key

Generate Public Key Linux

See also:

Generate Keys On Linux Between Servers Pc

  • Man pages: sshd(8),ssh(1),ssh-add(1),ssh-agent(1)

Generate Keys On Linux Between Servers Mac


Coments are closed
Scroll to top