Wszystko to jest zebrane ze strony internetowej i przepełnienia stosu, mam nadzieję, że pomoże to nowym użytkownikom ssh
więc możesz mieć wiele kluczy ssh
~/.ssh$ ls
yyy_id_rsa yyy_id_rsa.pub id_rsa id_rsa.pub known_hosts
Uwaga: musimy dodać następnie do ssh-agent, prawdopodobnie id_rsa zostanie dodany, więc musimy dodać drugi klucz prywatny
~/.ssh$ ssh-add yyy_id_rsa
teraz dodaliśmy oba klucze ssh do ssh-agent
mamy jeden na bitbucket i jeden na github
więc tworzymy taki plik konfiguracyjny
~/.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
Uwaga: używam 2 różnych kluczy dla 2 różnych kont na bitbucket i jednego dla github.
Teraz musimy powiedzieć repozytorium git, którego hosta użyć, aby uzyskać konkretny klucz ssh dla tego konkretnego konta
zmień git@bitbucket.orgyyyuser/yyyproject.git
nagit@bit-yyyuser:yyyuser/yyyproject.git
więc w folderze projektu i dodaj zdalny adres URL
/var/www/yyyproject$ git remote add bit git@bit-yyyuser:yyyuser/yyyproject.git
w innym projekcie
/var/www/xxxproject$ git remote add bitt git@bit-xxxuser:xxxuser/xxxproject.git
teraz możesz łatwo korzystać z funkcji push i pull
:/var/www/yyyproject$ git pull bit master
From bit-yyyuser:yyyuser/yyyproject
* branch master -> FETCH_HEAD
Already up-to-date.
:/var/www/yyyproject$
i inny 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$
teraz nie mam projektu github na lokalnej maszynie, więc musimy sklonować projekt, ale musimy wprowadzić niewielką zmianę adresu URL do klonowania
nasz adres URL jest taki
git@github.com:xxxuser/python.git
ponieważ musimy go sklonować za pomocą określonych kluczy, musimy tylko zmienić nazwę hosta na hosta, który zdefiniowaliśmy
git@git-xxxuser:xxxuser/python.git
jak zdefiniowano w pliku konfiguracyjnym
a teraz możemy sklonować
:/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$
zidentyfikowaliśmy różne klucze ssh dla różnych hostów, jeden dla git i jeden dla bitbucket, teraz system wie, które klucze ssh powinny być używane z danym hostem.
Teraz możemy łatwo ciągnąć, pchać.