Red Hat Enterprise Linux




Chapters     |     Exercises     |     Workshop     |    

Remote Access - Secure Shell (SSH)


Secure Shell (SSH)


Accessing remote prompt

Secure Shell (SSH)

Authentication Methods

  1. Password Authentication
  2. SSH Key-based Authentication without passphrase
  3. SSH Key-based Authentication with passphrase

SSH Keys

SSH host keys

SSH sécurise la communication via le cryptage à clé publique. Lorsqu'un client ssh se connecte à un serveur SSH, avant que le client se connecte, le serveur lui envoie une copie de sa clé publique. Ceci est utilisé pour configurer le cryptage sécurisé pour le canal de communication et pour authentifier le serveur auprès du client.


SSH host keys

La première fois qu'un utilisateur utilise ssh pour se connecter à un serveur particulier, la commande ssh stocke la clé publique du serveur dans le fichier ~/.ssh/known_hosts file de l'utilisateur. Chaque fois que l'utilisateur se connecte après cela. Le client s'assure qu'il obtient la même clé publique du serveur en comparant l'entrée du serveur dans le fichier ~/.ssh/known_hosts à la clé publique envoyée par le serveur.

Si les clés ne correspondent pas, le client suppose que le trafic réseau est piraté ou que le serveur a été compromis et interrompt la connexion. Cela signifie que si la clé publique d'un serveur est modifiée (parce que la clé a été perdue en raison d'une défaillance du disque dur ou remplacée pour une raison légitime), les utilisateurs devront mettre à jour leurs fichiers ~/.ssh/known_hosts et supprimer l'ancienne entrée. ouvrir une session.

SSH host keys

On Client System
Host IDs are stored in ~/.ssh/known_hosts on your local client system:
[root@lab student]# cat ~/.ssh/known_hosts

On Server System
Host keys are stored in /etc/ssh/ on the SSH server.

ECDSA Private Key : /etc/ssh/ssh_host_ecdsa_key
ECDSA Public Key : /etc/ssh/ssh_host_ecdsa_key.pub

RSA Private Key : /etc/ssh/ssh_host_rsa_key
RSA Public Key : /etc/ssh/ssh_host_rsa_key.pub

[root@lab student]# ls -la /etc/ssh/*key*
[root@lab student]# cat /etc/ssh/ssh_host_rsa_key

[root@redhat ~]# ls -la /etc/ssh/

Check your keys

Comparer les empreintes des clés
Pour confirmer qu'une clé publique est valide et correspond à une clé privée, comparez leurs empreintes :

- Empreinte de la clé privée
# ssh-keygen -lf ~/.ssh/id_rsa

- Empreinte de la clé publique
# ssh-keygen -lf ~/.ssh/id_rsa.pub

Si les empreintes sont identiques, la clé privée correspond bien à la clé publique.

ssh Client

Configuration Files

~/.ssh/ Configuration and keys Directory
~/.ssh/known_hosts     Accepted ssh servers keys file
~/.ssh/config Hosts Remote Access configuration file

Connection

[root@lab user]# ssh remote-user@remote-host


ssh Server

Daemon : sshd.service (Installed by default)

Configuring SSH Key-based Authentication

Les utilisateurs peuvent authentifier les connexions SSH sans mot de passe en utilisant l'authentification par clé publique. Ssh permet aux utilisateurs de s'authentifier à l'aide d'un schéma de clé public-privé. Cela signifie que deux clés sont générées, une clé privée et une clé publique. Le fichier de clé privée est utilisé comme authentification, informations d'identification, et comme un mot de passe, doit être gardé secret et sécurisé. La clé publique est copiée dans les systèmes sur lesquels l'utilisateur veut se connecter, et est utilisé pour vérifier la clé privée. La clé publique n'a pas besoin d'être secrète. Un serveur SSH disposant de la clé publique peut lancer un défi qui ne peut être géré que par un système contenant votre clé privée. Par conséquent, vous pouvez vous authentifier en utilisant la présence de votre clé. Cela vous permet d'accéder aux systèmes d'une manière qui ne nécessite pas de taper un mot de passe à chaque fois, mais qui reste sécurisée.




  1. Ensure for Key Based Authentication configuration on server

    /etc/ssh/sshd_config PubkeyAuthentication yes


  2. Keys generation

    Keys generation is done using the ssh-keygen command. This generates
    • the private key ~/.ssh/id_rsa
    • the public key ~/.ssh/id_rsa.pub
    You can generate keys with or without passphrase. Generate keys without passphrase is useful for automation actions (Just enter when prompt asks you for passphrase)

    Once the SSH keys have been generated, they are stored by default in the .ssh/ directory of your home directory. Permissions should be 600 on the private key and 644 on the public key.




  3. Check your keys

    Comparer les empreintes des clés
    Pour confirmer qu'une clé publique est valide et correspond à une clé privée, comparez leurs empreintes :

    - Empreinte de la clé privée
    # ssh-keygen -lf ~/.ssh/id_rsa

    - Empreinte de la clé publique
    # ssh-keygen -lf ~/.ssh/id_rsa.pub

    Si les empreintes sont identiques, la clé privée correspond bien à la clé publique.


  4. Copy key to SSH Server system user

    Before key-based authentication can be used, the public key needs to be copied to the Destination system. This can be done with ssh-copy-id.

    # ssh-copy-id remote-user@remote-host
    When the key is copied to another system using ssh-copy-id, it copies the ~/.ssh/id_rsa.pub file by default.

    On Server authorized connections keys are stored in ~/.ssh/authorized_keys file


  5. Initiate your ssh connection

    # ssh remote-user@remote-host -i pub_key_file




Authentication Methods

Password Authentication | Key Based Authentication | Host Based Authentication
Ensure for Key Based Authentication configuration on server

/etc/ssh/sshd_config PubkeyAuthentication yes|no

Eninam BAGNABANA     |         |     bagnadavid@outlook.fr     |