OpenSSH-9.6p1

Introduction à OpenSSH

Le paquet OpenSSH contient des clients ssh et le démon sshd. Il sert à chiffrer l'authentification et le trafic consécutif sur un réseau. Les commandes ssh et scp sont des implémentions sécurisées, respectivement de telnet et de rcp.

This package is known to build and work properly using an LFS 12.1 platform.

Informations sur le paquet

  • Téléchargement (HTTP) : https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 : 5e90def5af3ffb27e149ca6fff12bef3

  • Taille du téléchargement : 1,8 Mo

  • Estimation de l'espace disque requis : 45 Mo (plus 22 Mo pour les tests)

  • Estimation du temps de construction : 0.2 SBU (Using parallelism=4; running the tests takes about 20 minutes, irrespective of processor speed)

Dépendances de OpenSSH

Facultatives

GDB-14.1 (pour les tests), Linux-PAM-1.6.0 (les fichiers de configuration de PAM de Shadow-4.14.5 sont utilisés pour créer les fichiers d'openssh), Applications Xorg (ou Environnement de construction de Xorg, voir les explications des commandes), MIT Kerberos V5-1.21.2, Which-2.21 (pour les tests), libedit, LibreSSL Portable, OpenSC et libsectok

Facultatives pour l'exécution (Utilisé seulement pour modifier l'entropie)

Net-tools-2.10 et Sysstat-12.7.5

Installation de OpenSSH

OpenSSH lance pas moins de deux processus en se connectant à d'autres ordinateurs. Le premier processus est un processus privilégié et il contrôle comme il faut l'émission de privilèges. Le deuxième processus communique avec le réseau. Des étapes d'installation supplémentaires sont nécessaires pour paramétrer le bon environnement, effectuées en exécutant les commandes suivantes en tant qu'utilisateur root :

install -v -g sys -m700 -d /var/lib/sshd &&

groupadd -g 50 sshd        &&
useradd  -c 'sshd PrivSep' \
         -d /var/lib/sshd  \
         -g sshd           \
         -s /bin/false     \
         -u 50 sshd

Installez OpenSSH en exécutant les commandes suivantes :

./configure --prefix=/usr                            \
            --sysconfdir=/etc/ssh                    \
            --with-privsep-path=/var/lib/sshd        \
            --with-default-path=/usr/bin             \
            --with-superuser-path=/usr/sbin:/usr/bin \
            --with-pid-dir=/run                      &&
make

Pour tester les résultats lancez : make -j1 tests.

Maintenant, en tant qu'utilisateur root :

make install &&
install -v -m755    contrib/ssh-copy-id /usr/bin     &&

install -v -m644    contrib/ssh-copy-id.1 \
                    /usr/share/man/man1              &&
install -v -m755 -d /usr/share/doc/openssh-9.6p1     &&
install -v -m644    INSTALL LICENCE OVERVIEW README* \
                    /usr/share/doc/openssh-9.6p1

Explication des commandes

--sysconfdir=/etc/ssh : Ceci empêche les fichiers de configuration de s'installer dans /usr/etc.

--with-default-path=/usr/bin et --with-superuser-path=/usr/sbin:/usr/bin : ces paramètres initialisent PATH en accord avec le paquet Shadow de LFS et BLFS

--with-pid-dir=/run : ceci empêche OpenSSH d'utiliser /var/run qui est obsolète.

--with-pam : Ce paramètre active le support de Linux-PAM dans la construction.

--with-xauth=$XORG_PREFIX/bin/xauth : Règle l'emplacement par défaut du binaire xauth pour l'authentification X. La variable d'envionnement XORG_PREFIX doit être positionnée suivant Environnement de construction de Xorg. Vous pouvez aussi contrôler cela depuis sshd_config avec le mot-clé XAuthLocation. Vous pouvez vous passer de cette option si Xorg est déjà installé.

--with-kerberos5=/usr : Cette option est utilisée pour inclure le support Kerberos 5 dans la construction.

--with-libedit : Cette option active les possibilités d'édition de lignes et d'historique pour sftp.

Configuration d'OpenSSH

Fichiers de configuration

~/.ssh/*, /etc/ssh/ssh_config et /etc/ssh/sshd_config

Aucune modification n'est nécessaire dans aucun de ces fichiers. Cependant, vous pourriez souhaiter relire les fichiers /etc/ssh/ et effectuer les modifications adéquates pour la sécurité de votre système. Une des modifications recommandées est de désactiver la connexion en root via ssh. Exécutez la commande suivante en tant qu'utilisateur root pour désactiver la connexion root via ssh :

echo "PermitRootLogin no" >> /etc/ssh/sshd_config

Si vous voulez vous loguer sans taper votre mot de passe, commencez par créer ~/.ssh/id_rsa et ~/.ssh/id_rsa.pub avec ssh-keygen et ensuite copiez ~/.ssh/id_rsa.pub dans ~/.ssh/authorized_keys sur l'ordinateur distant où vous voulez vous loguer. Vous devrez changer REMOTE_USERNAME et REMOTE_HOSTNAME par le nom d'hôte de l'ordinateur distant et vous devrez entrer votre mot de passe pour que la commande ssh réussisse :

ssh-keygen &&
ssh-copy-id -i ~/.ssh/id_ed25519.pub REMOTE_USERNAME@REMOTE_HOSTNAME

Une fois que vous avez configuré un accès sans mot de passe, c'est en fait plus sécurisant que de vous connecter avec un mot de passe (puisque la clé privée est plus longue que la plupart des mots de passes). Si vous voulez maintenant désactiver la connexion avec mot de passe, en tant qu'utilisateur root :

echo "PasswordAuthentication no" >> /etc/ssh/sshd_config &&
echo "KbdInteractiveAuthentication no" >> /etc/ssh/sshd_config

Si vous avez ajouté le support de LinuxPAM et que vous voulez que ssh l'utilise, vous devrez ajouter un fichier de configuration pour sshd et permettre l'utilisation de LinuxPAM. Remarquez que ssh n'utilise PAM que pour vérifier les mots de passe. Si vous avez désactivé le login par mot de passe, ces commandes sont inutiles. Lancez les commandes suivantes en tant qu'utilisateur root :

sed 's@d/login@d/sshd@g' /etc/pam.d/login > /etc/pam.d/sshd &&
chmod 644 /etc/pam.d/sshd &&
echo "UsePAM yes" >> /etc/ssh/sshd_config

Vous pouvez trouver des informations de configuration supplémentaires dans les pages de man de sshd, ssh et de ssh-agent.

Script de démarrage

Pour lancer le serveur SSH au démarrage du système, installez le script de démarrage /etc/rc.d/init.d/sshd fourni dans le paquet blfs-bootscripts-20240209.

make install-sshd

Contenu

Programmes installés: scp, sftp, ssh, ssh-add, ssh-agent, ssh-copy-id, ssh-keygen, ssh-keyscan et sshd
Bibliothèques installées: Aucune
Répertoires installés: /etc/ssh, /usr/share/doc/openssh-9.6p1 et /var/lib/sshd

Descriptions courtes

scp

est un programme de copie de fichier agissant comme rcp sauf qu'il utilise un protocole chiffré

sftp

est un programme de genre FTP fonctionnant sur les protocoles SSH1 et SSH2

ssh

est un client du type rlogin/rsh sauf qu'il utilise un protocole chiffré

sshd

est un démon qui écoute les requêtes de connexion ssh

ssh-add

est un outil qui ajoute des clés à ssh-agent

ssh-agent

est un agent d'authentification qui peut stocker des clés privées

ssh-copy-id

est un script qui permet de se connecter sur des machines distantes en utilisant des clés locales

ssh-keygen

est un outil de génération de clés

ssh-keyscan

est un outil pour réunir des clés d'hôte publiques à partir d'un certain nombre d'hôtes