Utiliser deux comptes github séparément


Vous avez une double vie, dans l’une vous êtes un contributeur opensource honorable avec quelques patches à votre actif et une réputation d’homme affable, amateur de futurama et de donuts. Dans l’autre, vous êtes un sale con, un gros troll, un spammer et un créateur de bots qui tue des chatons.

Et github est tellement pratique. Mais si vous commitez avec votre compte actuel, votre nom apparaitra comme auteur du dernier scrapper de site zoophile sous licence libre. Et si vous utilisez un compte différent, un access denied vous ferme les portes du push.

Que faire ?

D’abord, créer un compte avec un email différent sur github. Ensuite, créer une nouvelle clé correspondant à votre nouvelle identité jaipasprislapillulebleue :

ssh-keygen -t rsa -C "jaipasprislapillulebleue@gmail.com"

Keygen va vous demander une passphrase. Soit vous obtez pour la sécurité et vous utilisez un truc long, chiant, et différent des passphrases précédentes. Soit vous êtes une feignasse comme moi, vous avez votre dossier .ssh dans une partition chiffrée et vous mettez le mot de passe de login comme ça la clé est dévérouillée à la connection.

Ensuite, on vous demandera le chemin du fichier dans lequel stocker la clé. Ne prenez pas le choix pas défaut sous peine de ruiner votre précédente clé. Un bon choix serait:

/home/moi/.ssh/jaipasprislapillulebleue-github

Ensuite il s’agit de cloner votre repo remote ou de l’ajouter. Ca, vous devez savoir faire sinon, il faut vous replonger dans un tuto.

Puis editez le fichier .git/config de votre projet en le faisant passer de ça:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@github.com:jaipasprislapillulebleue/project.git
    fetch = +refs/heads/*:refs/remotes/origin/*

A ça:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[user]
    name = jaipasprislapillulebleue
    email = jaipasprislapillulebleue@gmail.com
[remote "origin"]
    url = git@jaipasprislapillulebleue-github:jaipasprislapillulebleue/project.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Notez que l’url de remote origin a changé: on a remplacé github.com par un alias. On édite ensuite le fichier /home/me/.ssh/.config pour qu’il contienne ça:

Host github
hostname github.com
IdentityFile ~/.ssh/premiere-cle-github

Host jaipasprislapillulebleue-github
hostname github.com
IdentityFile ~/.ssh/jaipasprislapillulebleue-github

(Si vous avez utilisé la clé par défaut, la première clé sera dans le fichier .ssh/id_dsa.)

En gros on lui dit ici:

  • Si le host est github, utilise la première clé.
  • Si le host est jaipasprislapillulebleue-github, utiliser la nouvelle clé.

Il ne vous reste plus qu’à ajouter la clé publique (le contenu de .ssh/jaipasprislapillulebleue.pub) à la liste des clés autorisées dans les options de votre nouveau compte sur le site de github.

Vous êtes maintenant paré pour lancer un nouveau projet de site de comparateur de features vim VS emacs sans aucun risque de vous faire griller en utilisant nano.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.