Je suppose que HTTPS est recommandé par GitHub pour plusieurs raisons
1) Il est plus simple à utiliser de n'importe où car vous n'avez besoin que des détails de votre compte (aucune clé SSH requise)
2) HTTPS Est un port ouvert dans tous les pare-feu. SSH n'est pas toujours ouvert comme port de communication avec les réseaux externes
Un référentiel GitHub est donc plus universellement accessible via HTTPS que SSH.
À mon avis, les clés SSH valent le peu de travail supplémentaire pour les créer
1) Les clés SSH ne donnent pas accès à votre compte GitHub, donc votre compte ne peut pas être détourné si votre clé est volée,
2) L'utilisation d'une phrase clé forte avec votre clé SSH limite toute utilisation abusive, même si votre clé est volée
Si vos informations d'identification de compte GitHub (nom d'utilisateur / mot de passe) sont volées, votre mot de passe GitHub peut être modifié pour vous bloquer l'accès et tous vos référentiels partagés peuvent être rapidement supprimés.
Si une clé privée est volée, quelqu'un peut effectuer une poussée forcée d'un référentiel vide et effacer tout l'historique des modifications pour chaque référentiel que vous possédez, mais ne peut rien changer dans votre compte GitHub. Il sera beaucoup plus facile d'essayer de récupérer de cette violation si vous avez accès à votre compte GitHub.
Ma préférence est d'utiliser SSH avec une clé protégée par mot de passe. J'ai une clé SSH différente pour chaque ordinateur, donc si cette machine est volée ou compromise, je peux rapidement me connecter à GitHub et supprimer cette clé pour empêcher tout accès indésirable.
SSH peut être tunnelé via HTTPS si le réseau sur lequel vous vous trouvez bloque le port SSH.
https://help.github.com/articles/using-ssh-over-the-https-port/
Si vous utilisez HTTPS, je recommanderais d'ajouter une authentification à deux facteurs, pour protéger votre compte ainsi que vos référentiels.
Si vous utilisez HTTPS avec un outil (par exemple un éditeur), vous devez utiliser un jeton de développeur de votre compte GitHub plutôt que de mettre en cache le nom d'utilisateur et le mot de passe dans cette configuration d'outils.