Mon PC sous Windows à besoin de se connecter à des serveurs Linux.

Commandes passées avec Git Bash :

On génère les clés privée et publique avec ssh-keygen :

$ ssh-keygen -t rsa -b 4096 -C "ryzen@PC"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/ryzen/.ssh/id_rsa):
/c/Users/ryzen/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/ryzen/.ssh/id_rsa.
Your public key has been saved in /c/Users/ryzen/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:3sRG9mCizNEw4IWRoMLhA/HBhO3Q89EhZvyW2BsYT9A ryzen@PC
The key's randomart image is:
+---[RSA 4096]----+
| .==..           |
|.oo.Eo.          |
|++ =o*.o         |
+----[SHA256]-----+

On copie le contenu de id_rsa.pub vers le serveur dans le home concerné

Depuis le fichier généré id_rsa.pub

C:\Users\ryzen\.ssh\id_rsa.pub

On copie la clé publique, et on crée ou complète sur le serveur les clés autorisées à se connecter au serveur en complétant le fichier (~/.ssh/authorized_keys2) du bon user (monuser) avec lequel on se connectera :

monuser@monserveur:~/.ssh# vim ~/.ssh/authorized_keys2
ssh-rsa AAAAB3NzaC1yc2.......contenu_de_la_clef_Gs+TYrRQ== ryzen@PC

Alternative : la méthode de copie de la clé publique vers le serveur qui nous autorisera à nous connecter

Comme le propose SSH : Authentification par clé, on peut déployer sur le serveur distant sa clé publique (id_rsa.pub) avec la commande ssh-copy-id (par mesure de sécurité, le script ajoute l'extension .pub au fichier d'identité si elle a été omise).

$ ssh-copy-id
Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname
        -f: force mode -- copy keys without trying to check if they are already installed
        -n: dry run    -- no keys are actually copied
        -h|-?: print this help

$ ssh-copy-id -i ~/.ssh/id_rsa.pub monuser@150.80.40.10

On se connecte au serveur depuis l'ordinateur

$ ssh -p 22 monuser@150.80.40.10