Devriez-vous utiliser HTTPS ou SSH pour Git ?

0
55

Lorsque vous vous connectez à des référentiels Git distants comme Github, vous disposez généralement de deux options de connexion—HTTPS ou SSH. Les deux ont leur utilité, et bien que SSH soit généralement considéré comme plus sécurisé, la question est un peu plus compliquée que cela.

Quelle est la différence ?

La méthode d'authentification que vous utilisez pour vous connecter à un dépôt Git dépend de l'URL avec laquelle votre télécommande est configurée. Le format d'URL par défaut utilisé par Github est HTTPS, qui communique directement via le protocole Web :

https://github.com/user/RepoName.git

Cependant, vous pouvez également utiliser SSH. Même si vous n'ouvrez pas de shell interactif et n'exécutez pas de commandes, il s'agit toujours du même format que si vous vous connectiez à un serveur Linux standard compatible SSH :

user@ipaddress:folder/file < p>Avec Github et la plupart des services, vous vous connectez au “git” utilisateur et accédez au point de terminaison .git en tant que fichier dans un dossier avec votre nom d'utilisateur.

git@github.com:user/RepoName.git

Pourquoi utiliser HTTPS ?

Alors, lequel devriez-vous utiliser? Alors que SSH est généralement considéré comme plus sécurisé, pour une utilisation basique de Github, l'authentification HTTPS avec un mot de passe est assez acceptable. En fait, Github utilise par défaut et recommande à la plupart des gens d'utiliser HTTPS.

Publicité

Cependant, ce n'est plus aussi simple qu'avant, depuis août 2021, Github est désactivé à l'aide du mot de passe de votre compte pour vous authentifier. Vous devrez créer un jeton d'accès personnel, qui agit comme un deuxième mot de passe, mais qui est unique et peut recevoir des autorisations spécifiques. Il vous permet également d'utiliser 2FA sur votre compte sans aucun problème.

HTTPS a de nombreux avantages :

  • HTTPS est plus simple. Pour la plupart des services autres que Github, il vous suffit d'entrer votre nom d'utilisateur et votre mot de passe, et vous pourrez pousser et extraire le code.
  • Vous n'avez pas à jongler avec plusieurs clés SSH pour utiliser plusieurs appareils.
  • Le port 443, que HTTPS utilise, est ouvert dans pratiquement tout pare-feu pouvant accéder à Internet. Ce n'est pas toujours le cas pour SSH.

Le principal inconvénient pour la plupart des gens est que vous devez entrer votre mot de passe/jeton Git à chaque fois que vous appuyez. Bien qu'il soit ajouté à un cache, il n'est pas configuré pour être mis en cache de manière permanente (bien que cela puisse être modifié). Avec les clés SSH, il utilise simplement le fichier de clé sur le disque à chaque fois.

Pourquoi utiliser SSH ?

C'est une idée fausse que HTTPS en tant que protocole est nettement moins sécurisé que SSH. Les deux vous fourniront une connexion sécurisée à l'abri des attaques de l'homme du milieu (MITM). Les deux protocoles feront leur travail de la même manière tant que les clés sous-jacentes sont sécurisées. Les deux utiliseront de toute façon une authentification basée sur la clé publique, bien que HTTPS avec Git enverra votre mot de passe via le fil. Et les deux protocoles peuvent être configurés pour utiliser également l'authentification multifacteur (MFA/2FA), bien qu'avec Github, il soit plus facile d'utiliser MFA sur votre compte si vous utilisez des clés SSH.

Là où SSH prend les devants, c'est avec le facteur d'authentification & la clé. Sa longueur à elle seule rend plus difficile les fuites accidentelles et, en raison de sa lourdeur et de son caractère unique, elle est généralement plus sûre. Le seul inconvénient est qu'il est stocké sous forme de fichier accessible par l'utilisateur sur votre disque dur plutôt que dans votre tête, mais étant donné à quel point les humains sont mauvais en matière de sécurité, c'est probablement mieux ainsi.

< p>De plus, il n'est pas enclin à être victime d'une violation de données. Il est garanti de ne pas être réutilisé, mais il n'est également jamais stocké sur le serveur de quelqu'un d'autre. Étant donné que vous ne donnez à Github que votre clé publique et que vous utilisez votre clé privée de votre côté pour effectuer le défi d'authentification, il n'y a aucun risque qu'elle soit exposée, ni même envoyée par câble.

SSH a de nombreux inconvénients, mais ils peuvent être atténués si vous savez ce que vous faites :

  • La configuration de votre compte Github pour utiliser votre clé SSH ne nécessite que quelques commandes et clics. leurs paramètres.
  • La gestion de plusieurs clés par ordinateur n'est pas anodine, mais elle n'est pas trop difficile à configurer en configurant votre fichier hôte SSH et les télécommandes Git.
  • Le transfert de clés vers d'autres machines est possible, mais puisque vous pouvez avoir plusieurs clés SSH, cela n'est pas nécessaire.

CONNEXION : Comment utiliser une autre clé SSH privée pour Git Shell Commandes

SSH peut même être tunnelisé via HTTPS lors de l'accès à Github, en utilisant le nom d'hôte ssh.github.com dans votre configuration SSH. Bien que cela ne soit peut-être pas vrai pour tous les services Git, c'est un avantage appréciable pour le plus grand :

Hôte github.com Nom d'hôte ssh.github.com Port 443

Les clés SSH peuvent également être enchaînées à l'aide du transfert d'agent SSH, qui vous permet de vous connecter à un serveur distant, puis d'utiliser la clé SSH sur votre machine cliente pour vous authentifier. Le serveur distant agit en tant qu'intermédiaire, ignorant votre clé SSH.

CONNEXES : Qu'est-ce que le transfert d'agent SSH et comment l'utilisez-vous ?

Que devriez-vous utiliser ?

La question est : devriez-vous vous en préoccuper ? Si vous avez l'habitude d'utiliser une ligne de commande, il n'est pas trop difficile d'utiliser simplement des touches, et la plupart des gens le feront de toute façon simplement parce qu'il est plus facile de configurer une fois et de ne plus jamais saisir de mot de passe. Cela fonctionne également mieux avec 2FA, que la plupart des comptes Github de haute sécurité devraient probablement utiliser.

Si vous recherchez simplement une expérience simple, HTTPS est sécurisé tant que votre mot de passe est sécurisé. Il y a une raison pour laquelle Github l'a par défaut et le recommande même, cela fonctionne bien et est facile à comprendre.