From Fedora Project Wiki

Cryptographic technology helps provide security and privacy by allowing you to encrypt and sign electronic communications or disk contents. Fedora includes the OpenSSH and GnuPG tools for cryptographic communications. LUKS has also been integrated with Fedora to provide hard disk encryption.

The Theory

OpenSSH and GnuPG use a common cryptographic theory to allow encryption and cryptographic signatures based upon public and private keys. In this theory, each person or organization has one or more private keys, and each private key has a corresponding public key. The private key is required to decrypt data and create signatures. The public key can be shared freely and is used to encrypt data and verify signatures. More information about how and why this works can be found on the OpenSSH and GnuPG websites.


OpenSSH is an SSH implementation included in Fedora. SSH (Secure SHell) allows encrypted and cryptographically authenticated connections between computers.

Installing OpenSSH

OpenSSH is usually included by default on Fedora installations. If you do not already have it installed, you can install the package using DNF or YUM:

dnf|yum install openssh

Creating SSH Keys

Once SSH is installed, you can use ssh-keygen to create your private and public keys:

ssh-keygen -t rsa

You will be prompted for a location (pressing Enter uses the default. You may wish to name this something specific if you are using this key to access some specific set of machines), and a passphrase. Choose a good passphrase that you won't forget.

You must remember this passphrase!
If you forget it, you will not be able to recover it, and you will not be able to access anything using your key. You would then have to create a new key and share the new public key with anyone who had your old one.

For usage instructions for ssh-keygen, run man ssh-keygen to view the manual.

By default, your new private and public keys will be stored in ~/.ssh/id_rsa and ~/.ssh/, respectively.

You can share your public key openly. Server administrators can use it to grant you access to their systems. You should carefully protect your private key and not share it with anyone.

You can use your ~/.ssh/config file to determine which key is used for which hosts:

HOST * * *
     IdentityFile ~/.ssh/id_rsa_fedora

see man ssh_config for more information.

Additional information is available at:


The GNU Privacy Guard (GnuPG or GPG) is a generic cryptographic tool. GPG is often used to sign email messages, and the Fedora Project uses it to sign packages.

Installing GnuPG

GnuPG is included in Fedora. It can be installed using yum or dnf:

yum|dnf install gnupg

Creating GPG Keys

GPG key creation is more complex than SSH key creation, and many people prefer to use a graphical interface such as kgpg on KDE or seahorse on GNOME. kgpg is available in the kdeutils package. seahorse is in the Fedora repository.

See Creating GPG Keys from the Fedora Documentation Project for detailed command line instructions.

Additional information is available at:

Disk and file encryption

Fedora provides full disk encryption which can be selected at installation time as well as support for transparent encrypted directories and various utilities to encrypt single files.

See Disk and File Encryption for an overview.