Dies wird alles von der Website und dem Stackoverflow zusammengetragen. Ich hoffe, dies hilft denjenigen, die neu bei ssh sind
Sie können also viele SSH-Schlüssel haben
~/.ssh$ ls
yyy_id_rsa yyy_id_rsa.pub id_rsa id_rsa.pub known_hosts
Hinweis: Wir müssen dann zum ssh-agent hinzufügen, wahrscheinlich wird id_rsa hinzugefügt, also müssen wir den anderen privaten Schlüssel hinzufügen
~/.ssh$ ssh-add yyy_id_rsa
Jetzt haben wir beide ssh-Schlüssel zu ssh-agent hinzugefügt
Wir haben einen für Bitbucket und einen für Github
Also erstellen wir eine solche Konfigurationsdatei
~/.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
Hinweis: Ich verwende 2 verschiedene Schlüssel für 2 verschiedene Konten auf Bitbucket und einen für Github.
Jetzt müssen wir dem Git-Repository mitteilen, welcher Host verwendet werden soll, damit ich diesen speziellen SSH-Schlüssel für dieses spezielle Konto erhalte
wechseln git@bitbucket.orgyyyuser/yyyproject.git
zugit@bit-yyyuser:yyyuser/yyyproject.git
also im Projektordner und füge die Remote-URL hinzu
/var/www/yyyproject$ git remote add bit git@bit-yyyuser:yyyuser/yyyproject.git
in einem anderen Projekt
/var/www/xxxproject$ git remote add bitt git@bit-xxxuser:xxxuser/xxxproject.git
Jetzt können Sie einfach drücken und ziehen
:/var/www/yyyproject$ git pull bit master
From bit-yyyuser:yyyuser/yyyproject
* branch master -> FETCH_HEAD
Already up-to-date.
:/var/www/yyyproject$
und ein anderes Projekt
/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$
Jetzt habe ich das Github-Projekt nicht auf dem lokalen Computer, daher müssen wir das Projekt klonen, aber wir müssen die URL zum Klonen ein wenig ändern
Unsere URL ist wie folgt
git@github.com:xxxuser/python.git
Da wir es mit bestimmten Schlüsseln klonen müssen, müssen wir nur den Hostnamen mit dem von uns definierten Host ändern
git@git-xxxuser:xxxuser/python.git
wie in der Konfigurationsdatei definiert
und jetzt können wir klonen
:/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$
Wir haben verschiedene SSH-Schlüssel für verschiedene Hosts identifiziert, einen für Git und einen für Bitbucket. Jetzt weiß das System, welche SSH-Schlüssel mit welchem Host verwendet werden sollen.
Jetzt können wir leicht ziehen, schieben.