Outils pour utilisateurs

Outils du site


linux:ubuntu:ssh_sftp_cle_privee_cle_publique

SSH et SFTP avec Clés Publique/Privée

Prérequis

On a déjà un accès SSH et SFTP sur le serveur en tant qu'utilisateur marc en entrant le mot de passe lorsqu'il est demandé.

ssh marc@monserveur.net
sftp://marc@monserveur.net

Générer la paire de clés SSH

Sur un PC fraîchement installé, on peut soit copier les fichiers contenant les clés qu'on utilise déjà sur un autre PC, ou on peut générer de nouvelles clés avec cette commande :

ssh-keygen -t rsa -b 2048 -C "mon-adresse@email"
  • Chemin de la sauvegarde : accepter le chemin et le nom du fichier proposés.
  • Passphrase : ne pas mettre de passphrase. Si on préfère en mettre une, il faudra l'entrer à chaque fois qu'on utilise la paire de clés.

Deux fichiers sont créés :

/home/marc/.ssh/id_rsa     # clé privée
/home/marc/.ssh/id_rsa.pub # clé publique

Envoyer la clé publique sur le serveur

  • Entrer cette commande :
ssh-copy-id marc@monserveur.net
  • Entrer le mot de passe de l'utilisateur
  • La clé publique est ajoutée au fichier authorized_keys de cet utilisateur sur le serveur
/home/marc/.ssh/autorized_keys
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx marc@email.com

Tester la connexion, si tout se passe bien le mot de passe n'est plus demandé.

ssh marc@monserveur.net

Si on utilise GIT

Sur le même serveur j'ai un utilisateur nommé git dont le dossier home est rempli de dépôts.

/home/git/projet1.git/
/home/git/projet2.git/
...

Sur mon PC j'utilise git en tant que marc, donc je désire envoyer la clé publique de marc sur le compte de git également, de cette façon la clé sera utilisée lorsque je ferai des git push

ssh-copy-id git@monserveur.net

Cette fois la clé publique est ajoutée au fichier authorized_keys de l'utilisateur git sur le serveur.

Tester la connexion :

ssh git@monserveur.net

Et je clone un projet localement en faisant :

git clone git@monserveur.net:/home/git/projet1.git

Fichier de configuration

:!: Il FAUT que le fichier de configuration soit lisible uniquement par l'utilisateur, sinon ssh refusera de l'utiliser.

cd ~/.ssh
chmod 600 config
 
-rw------- ~/.ssh/config
~/.ssh/config
Host serveur1
        Hostname 123.45.67.89
        Port 22
        User marc
 
Host serveur2
        Hostname www.monserveur.net
        Port 22
        User root
        IdentityFile ~/.ssh/serveur2.key

Après il suffit d'appeler ssh serveur1 ou ssh serveur2.

linux/ubuntu/ssh_sftp_cle_privee_cle_publique.txt · Dernière modification: 2022/02/03 05:43 par marclebrun