Les instructions de help.ubuntu.com/community/SSH/OpenSSH/Configuring recommandent de désactiver l'authentification par mot de passe afin qu'"il ne soit possible de se connecter qu'à partir d'ordinateurs que vous avez spécifiquement approuvés". Mais ils ne disent pas comment approuver spécifiquement un ordinateur. Comment faire ?
Réponse acceptée :
Sur chaque utilisateur auquel vous voulez avoir accès au serveur, lancez dans un terminal :
ssh-keygen
ssh-copy-id <username>@<serverIPorDNSname>
Il vous demandera où l'enregistrer, la valeur par défaut est très bien. Il vous demandera d'entrer une phrase de passe. Il s'agit de chiffrer la clé au cas où l'ordinateur serait volé ou compromis. Si vous ne voulez pas de phrase secrète, laissez les deux invites de phrase secrète vides.
La première commande crée une clé ssh pour l'utilisateur actuel sur lequel elle est exécutée. La deuxième commande ssh dans le serveur et ajoute la clé de l'utilisateur actuel à la liste du serveur des personnes autorisées à se connecter. Étant donné que ssh-copy-id utilise ssh, vous devrez le faire avant de désactiver les connexions par mot de passe.
Les clés SSH sont deux moitiés correspondantes. Une moitié est dite à tout le monde, l'autre est gardée secrète. À l'aide d'un algorithme mathématique, la moitié publique peut être utilisée pour déchiffrer les données chiffrées avec la clé privée. Si les données sont déchiffrées avec succès avec la clé publique, vous savez sans aucun doute que c'est la moitié privée de la clé qui les a chiffrées. Ainsi, lorsque vous vous connectez avec une clé ssh, le client envoie un message (chiffré à l'aide de la clé privée) qui dit essentiellement "laissez-moi entrer". Le serveur vérifie à l'aide de la clé publique et si la clé publique figure dans la liste des ordinateurs autorisés, la connexion est réussie.
ssh-copy-id copie (en utilisant ssh) la moitié publique sur la liste des serveurs des clés autorisées à se connecter (cette liste est stockée dans /home/cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2
sur le serveur.)