

Centralized key management systems are preferred for more general use in large organizations where many different users need to be accredited for access to many different servers. The procedures outlined in this tutorial are best applied to individual clients and servers and to demonstrate how SSH keys can be generated and used. In this case, the user employs one public key to authenticate when logging in to terminal emulation sessions with the remote server and another public key with higher permissions for doing system administration. Copying multiple public keys associated with different user accounts, each with varying levels of permission to a remote server.This enables the user to remotely access multiple systems via SSH using the same login ID and is particularly useful for system administrators doing remote system maintenance, for example.

Copying a single user's public key file to multiple remote servers.Configuring an SSH server to recognize the SSH client by copying the public key file from the user's local computer to the remote server.This is done by having users authenticate their ownership of the public key by demonstrating they control the private key of the public key pair. Putting a public key file on an SSH server enables the user associated with the public key to securely log in to the SSH server. If local users do not have sufficient permission, they can request that a system administrator of the remote host copy the files for them. Only a user with authenticated permission should be able to copy files to the server. The best approach for securely authenticating SSH sessions, however, is to create a public key pair for the local computer and copy the public key file to the remote SSH server. SSH can be used without a prior exchange of public key pairs, and those uses can be reasonably secure.

The advantage of using a CLI version of SSH is that commands are consistent across OSes, unlike with GUI versions that may implement commands using a variety of GUI techniques.

This tutorial uses examples from OpenSSH in Windows PowerShell and in Linux Bash (Bourne Again Shell) command-line interfaces ( CLIs), but they also should apply to the macOS version of OpenSSH. However, modern OSes, including Windows 10 and later, Linux and macOS, include command-line versions of the OpenSSH implementation of SSH. For example, the PuTTYgen program is a GUI version of ssh-keygen for use with PuTTY, a GUI implementation of SSH for Windows. GUI versions of SSH usually include the same functionality as the command-line versions.
