Tout cela est collecté à partir du site Web et du stackoverflow, espérons que cela aide les nouveaux utilisateurs de ssh
vous pouvez donc avoir plusieurs clés ssh
~/.ssh$ ls
yyy_id_rsa yyy_id_rsa.pub id_rsa id_rsa.pub known_hosts
Remarque: nous devons ajouter ensuite à l'agent ssh, probablement id_rsa sera ajouté, nous devons donc ajouter l'autre clé privée
~/.ssh$ ssh-add yyy_id_rsa
maintenant, nous avons ajouté les deux clés ssh à ssh-agent
nous en avons un pour bitbucket et un pour github
nous créons donc un fichier de configuration comme celui-ci
~/.ssh$ nano config
Host bit-yyyuser bitbucket.org
Hostname bitbucket.org
IdentityFile ~/.ssh/yyy_id_rsa
User yyyuser
Host bit-xxxuser bitbucket.org
Hostname bitbucket.org
IdentityFile ~/.ssh/id_rsa
User xxxuser
Host git-xxxuser github.com
Hostname github.com
IdentityFile ~/.ssh/id_rsa
User xxxuser
Remarque: j'utilise 2 clés différentes pour 2 comptes différents sur bitbucket et une pour github.
Maintenant, nous devons dire au référentiel git quel hôte utiliser afin que j'obtienne cette clé ssh spécifique pour ce compte spécifique
changer git@bitbucket.orgyyyuser/yyyproject.git
pourgit@bit-yyyuser:yyyuser/yyyproject.git
donc dans le dossier du projet et ajoutez l'url distante
/var/www/yyyproject$ git remote add bit git@bit-yyyuser:yyyuser/yyyproject.git
dans un autre projet
/var/www/xxxproject$ git remote add bitt git@bit-xxxuser:xxxuser/xxxproject.git
vous pouvez maintenant utiliser push and pull facilement
:/var/www/yyyproject$ git pull bit master
From bit-yyyuser:yyyuser/yyyproject
* branch master -> FETCH_HEAD
Already up-to-date.
:/var/www/yyyproject$
et un autre projet
/var/www/xxxproject$ git push bitt ver1
To git@bit-xxxuser:xxxuser/xxxproject.git
* branch master -> FETCH_HEAD
Already up-to-date.
:/var/www/xxxproject$
maintenant je n'ai pas le projet github sur la machine locale donc nous devons cloner le projet mais nous devons faire un petit changement à l'url pour cloner
notre URL est comme ça
git@github.com:xxxuser/python.git
comme nous devons le cloner avec des clés spécifiques, nous avons juste besoin de changer le nom d'hôte avec l'hôte que nous avons défini
git@git-xxxuser:xxxuser/python.git
comme défini dans le fichier de configuration
et maintenant on peut cloner
:/var/www/us$ git clone git@git-xxxuser:xxxuser/python.git
Cloning into 'python'...
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 75 (delta 18), reused 62 (delta 8)
Receiving objects: 100% (75/75), 6.29 KiB, done.
Resolving deltas: 100% (18/18), done.
:/var/www/us$
nous avons identifié différentes clés ssh pour différents hôtes, une pour git et une pour bitbucket maintenant le système sait quelles clés ssh doivent être utilisées avec quel hôte.
Maintenant, nous pouvons facilement tirer, pousser.