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
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 yum:
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.
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/id_rsa.pub
, 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 *.fedoraproject.org fedorapeople.org *.fedorahosted.org IdentityFile ~/.ssh/id_rsa_fedora
see 'man ssh_config' for more information.
Additional information is available at:
GnuPG
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:
yum 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 or added to a additional devices at any time - see Disk Encryption User Guide.
Several methods for encrypting single files, directories or archives are also provided:
- encfs fileysystem, transparent access, file level encryption
- GnuPG file encryption, more secure but no transparent access