web-dev-qa-db-fra.com

Je n'ai pas de fichier ~ / .ssh / config mais plusieurs comptes GitHub fonctionnent, comment?

J'essaie de configurer un autre compte GitHub pour pouvoir travailler depuis ma machine. J'ai commencé à regarder autour de moi et j'ai trouvé :

Configurez plusieurs profils ssh en créant/modifiant ~/.ssh/config. Notez les valeurs légèrement différentes de l'hôte:

Donc, comme j'ai (déjà) plusieurs comptes qui fonctionnent (je ne me souviens pas comment et quand je l'ai fait), je voulais simplement ajouter une autre entrée dans ~/.ssh/config. Mais il semble que je n'ai pas un tel fichier. Peut-être qu'il est situé ailleurs? Ou peut-être que ma machine est configurée d'une autre manière? Par où commencer la recherche?

6
Marian Paździoch

C'est le comportement de ssh plutôt que de git.

Dans votre ~/.ssh dossier vous avez votre clé privée. Le nom du fichier de votre clé privée est id_rsa par défaut. Chaque fois que votre client ssh doit se connecter à un serveur ssh, il lit la clé de ce fichier.

Mais dans certains cas, vous souhaiterez peut-être utiliser une clé privée différente pour l'authentification. Dans ce cas, vous créez le fichier ~/.ssh/config et vous ajoutez une section avec un alias (le nom d'hôte que vous écrivez sur la ligne de commande) le vrai nom d'hôte et le chemin d'accès au fichier de clé alternatif sur votre système local:

# ~/.ssh/config
Host alternative-github
    HostName github.com
    User MyOtherGithubUser
    IdentityFile /media/me/MyUsbThumbDrive/.ssh/MyOtherGithubUsers-id_rsa

Avec cette configuration ssh recherche sur ma clé USB UBS la clé privée lorsque je clone le dépôt comme ceci:

git clone git@alternative-github:/MyOtherGithubUser/someRepositoty.git

conclusion

Tant que vous utilisez la même paire de clés publique/privée avec vos projets git et que la clé privée est disponible en tant que ~/.ssh/id_rsa vous n'avez pas besoin du fichier ~/.ssh/config.

7
Timothy Truckle

Je voulais juste ajouter une autre entrée dans ~/.ssh/config

Vous pouvez le créer, mais:

  • vous devez avoir généré des clés publiques/privées avec un nom différent

    ssh-keygen -q -P "" -t rsa -f ~/.ssh/key2
    
  • vous devez être enregistré ~/.ssh/key2.pub sur votre deuxième compte de serveur distant

  • vous devez avoir un fichier de configuration avec:

    Host github2
    HostName github.com
    User git
    IdentityFile /home/me/.ssh/key2
    

Notez l'utilisateur ici: 'git', not 'another GitHub account '

  • vous devez modifier l'URL distante d'origine pour utiliser cette entrée:

    git remote set-url Origin github2:MySecondAccount/MyRepo.git
    
1
VonC