[1&1] Git partie 1: configuration du SSH (Windows)

1&1 offre pour les packs hébergement tournant sous Linux et disposant d’un accès SSH, la possibilité d’utiliser le gestionnaire de version Git.
Ce gestionnaire de version est déjà installé côté serveur, cependant un peu de configuration est nécessaire côté client avant de pouvoir effectuer les premiers « push ».
Configuration du client : Windows 10 Professionnel (64-bit) avec Git 2.8.1.

Voici les différentes étapes à suivre:

1. Télécharger Git
Pour Windows: https://git-scm.com/download/win

2. Installation de Git
Les options par défaut conviennent dans la majorité des cas.

Git installation 1 Git installation 2 Git installation 3 Git installation 4 Git installation 5 Git installation 6 Git installation 7 Git installation 8 Git installation 9

À présent Git est installé et le programme Git Bash est disponible.

3. Connexion SSH (avec mot de passe)
On se connecte à son espace client 1&1 et on accède à la section  pour récupérer ses identifiants SSH.
1and1 espace client ssh
En local, on lance Git Bash et on exécute la commande :

ssh u82xxxxx@u82xxxx.1and1-data.host

L’erreur suivante est alors levée:

Unable to negotiate with xxx:xxx:xxx:xxx:xxx:xxx:xxx:xxx: no matching host key type found. Their offer: ssh-dss

Par défaut  sur les versions récentes d’OpenSSH, l’algorithme ssh-dss est désactivé car considéré comme trop faible. Il est possible de forcer son utilisation en spécifiant un argument dans la commande ou alors en modifiant la configuration. Dans un 1er temps, nous allons opter pour la première solution puis nous verrons quelques lignes plus bas, la deuxième solution.

ssh u82xxxxx@u82xxxx.1and1-data.host -oHostKeyAlgorithms=+ssh-dss

A présent, le message affiché est le suivant :

The authenticity of host ‘u82xxxx.1and1-data.host (xxx:xxx:xxx:xxx:xxx:xxx:xxx:xxx)’ can’t be established.DSA key fingerprint is SHA256:yyyyyyyyyyyyyyyyyyyyyyyy.
Are you sure you want to continue connecting (yes/no)?

En tapant <Yes>, l’hôte se retrouve ajouté dans le fichier known_hosts, fichier présent dans le répertoire « .ssh »
Il ne reste alors plus qu’à saisir le mot de passe du compte SSH pour établir la connexion à son serveur.

4. Génération des clés privée/publique pour le SSH
En local, on lance un nouveau Git Bash et on exécute la commande :

ssh-keygen -t rsa -b 2048

<Entrer>, pour garder le nom et l’emplacement par défaut pour la clé privée (id_rsa).
<Entrer>, deux fois, pour ne pas spécifier de passphrase.  Cela n’est pas nécessaire dans un 1er temps.

Les deux clés sont alors générées à l’emplacement indiquée dans la console, généralement <c:\Users\<nom_utilisateur>\.ssh>
– La clé privée id_rsa restera en local, côté client.
– La clé public id_rsa.pub sera déclarée côté serveur 1&1.

5. Ajout de la clé id_rsa.pub côté serveur
Cette opération peut être réalisée de plusieurs façon, par exemple en SSH ou en FTP.
Une fois connecté au serveur, on est positionné par défaut à la racine de notre espace personnel (~\).

  • Créer un répertoire « .ssh ».
  • Créer un fichier authorized_keys2.
  • Ajouté dans ce fichier authorized_keys2 le contenu du fichier id_rsa.pub.

6. Connexion SSH (avec clés)
En local, on lance Git Bash et on exécute la commande :

ssh u82xxxxx@u82xxxx.1and1-data.host -oHostKeyAlgorithms=+ssh-dss

Pour ne pas avoir à spécifier l’argument -oHostKeyAlgorithms, il est possible de créer un fichier nommé config dans le dossier « .ssh » (<c:\Users\<nom_utilisateur>\.ssh>) contenant:

Host u82xxxx.1and1-data.host
HostkeyAlgorithms +ssh-dss

Et voilà, la connexion SSH est à présent établie sans demander le mot de passe du compte SSH mais en utilisant la système de clé privée/publique.
Utilisation de Git dans une deuxième partie.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.