PARTIE2: Serveur SSH :• SSH (Secure Shell) est un protocole réseau permettant d'établir une
communication chiffrée entre deux machines (client et serveur). Il est notamment utilisé pour se
connecter à distance à un serveur SSH, y exécuter des commandes ou transférer des fichiers de
manière sécurisée.• Par défaut, un serveur SSH écoute sur le port TCP standard 22. Un programme
client SSH est généralement utilisé pour établir des connexions avec le serveur qui exécute un
démon sshd. • Etape 1: Etablir un connexion TCP entre le client et le serveur• Etape 2: Vérifier que le
client et le serveur utilise la même version SSH. • Etape 3: Processus d'échange de clé (négociation
d'algorithme, authentification du serveur, et génération de clé de session). • Etape 4: Négociation
des méthodes d'authentification du client. • Etape 5: Le client s'authentifie auprès du serveur.
•OpenSSH est la solution la plus utilisée pour mettre en place une communication SSH via un
ensemble d'outils libres dont certains sont installés par défaut sur Ubuntu • Il faut installer openssh-
server sur la machine sur laquelle on veut executer le service SSH.• Il faut installer openssh-client sur
les machines clients (installé par défaut sur Ubuntu). • Installation de openssh: sudo apt-get
install openssh-server • Démarrage du service: sudo systemctl status/ start/stop/restart ssh •
Configuration: fichier : /etc/ssh/sshd_config (serveur), /etc/ssh/ssh_config (client). • Utilisation:
commande ssh : •ssh <nom_utilisateur>@<ipaddress> -p <num_port>• ssh
[email protected] -p 12345 • ssh -6 <nom_utilisateur>@<adresse_ipv6> • ssh -6
alfred@2a01:e35:2431::2e57 • ssh utilisateur@nom_machine. • Utilisation: commande
scp( trans fichier) : •scp <fichier> <username>@<ipaddressDistant>:</DestinationDirectory> •scp -
6 <element> <nom>@[addresse_ipv6]:<destination> •scp fichier.txt [email protected]:
/home/hornbeck •scp -6 fichier.txt albertine@[2a01:e35:2431::2a34]:/home/albertine •scp -r
répertoire [email protected]:/home/hornbeck/ •scp -6r répertoire/
albertine@[2a01:e35:2431::2a34]:/home/albertine •scp [email protected]:
/home/hornbeck/urls.txt . • Sécurité: Serveur SSH • Authentification par mot de passe (par
défaut, non sécurisé) • Authentification par clé privé/clé public (recommandé) • Interdir l'accès
direct à root au serveur SSH • Autoriser/interdire l'accès SSH à certains utilisateurs/groupes:
AllowUsers, DenyUsers, AllowGroups, DenyGroups • Pare-feu • Changer le numéro de port par
défaut. • Configuration: Mise en place des clés : • ssh-keygen -t rsa (sur le client): La paire de
clé sera enregistrée dans le dossier caché par défaut ~/.ssh, et une passphrase est demandée pour
protéger l'utilisation de la clé privée (ex.~/.ssh/id_rsa.pub et ~/.ssh/id_rsa) • Il faut envoyer la clé
publique au serveur: Le mot de passe de l'utilisateur sur le serveur est demandé si
PasswordAuthentication=yes. A l'issue de cette commande,la clé publique est ajoutée au fichier
~/.ssh/authorized_keys sur le serveur, et le client devient un hôte de confiance. Copie de clé
publique vers le serveur :• ssh-copy-id -i ~/.ssh/id_ed25519.pub -p <num_port>
"<username>@<ipaddress>"• ssh login@serveur "echo $(cat ~/.ssh/id_ed25519.pub) >>
.ssh/authorized_keys".• Configuration: • Consulter les logs sur le fichier /etc/log/auth.log •
Ajouter les adresses IP avec les clés publiques associés dans ~/.ssh/known_hosts • Sur le client,
ajouter les deux options suivantes dans le fichier de configuration /etc/ssh/ssh_config: •
PreferredAuthentications publickey • ServerAliveInterval 240