Bunların hepsi web sitesinden ve stackoverflow'tan toplanmıştır, umarım bu, yeni olanlara yardımcı olur
Böylece birçok ssh anahtarına sahip olabilirsiniz.
~/.ssh$ ls
yyy_id_rsa yyy_id_rsa.pub id_rsa id_rsa.pub known_hosts
Not: ssh-agent'a eklemeliyiz, muhtemelen id_rsa eklenecek, böylece diğer özel anahtarı eklememiz gerekecek
~/.ssh$ ssh-add yyy_id_rsa
Şimdi ssh-agent'a her iki ssh anahtarını da ekledik
biz bir bitbucket için bir tane ve bir tane github için
bu yüzden böyle bir config dosyası yaratırız
~/.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
Not: Bitbucket'te 2 farklı hesap için 2 farklı anahtar ve bir tane de github için kullanıyorum.
Şimdi hangi depoyu kullanacağını git deposuna söylemeliyiz, böylece o hesap için o özel ssh anahtarını alacağım
değişim git@bitbucket.orgyyyuser/yyyproject.git
içingit@bit-yyyuser:yyyuser/yyyproject.git
böylece proje klasörüne ve uzak url'yi ekleyin
/var/www/yyyproject$ git remote add bit git@bit-yyyuser:yyyuser/yyyproject.git
diğer projede
/var/www/xxxproject$ git remote add bitt git@bit-xxxuser:xxxuser/xxxproject.git
şimdi itme ve çekmeyi kolayca kullanabilirsiniz
:/var/www/yyyproject$ git pull bit master
From bit-yyyuser:yyyuser/yyyproject
* branch master -> FETCH_HEAD
Already up-to-date.
:/var/www/yyyproject$
ve başka bir proje
/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$
şimdi yerel makinede github projem yok, bu yüzden projeyi klonlamamız gerekiyor ama klonlamak için url'de küçük bir değişiklik yapmamız gerekiyor
url’miz bu şekilde
git@github.com:xxxuser/python.git
belirli anahtarlarla klonlamamız gerektiğinden, sadece ana bilgisayar adını tanımladığımız ana bilgisayarla değiştirmemiz gerekir
git@git-xxxuser:xxxuser/python.git
config dosyasında tanımlandığı gibi
ve şimdi klonlayabiliriz
:/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$
farklı host için farklı ssh anahtarlarını, biri git için ve diğeri bitbucket için tanımladık.
Şimdi kolayca çekebiliriz, itebiliriz.