Tutto questo è raccolto dal sito Web e dallo stackoverflow, spero che questo aiuti chi è nuovo a ssh
così puoi avere molti tasti ssh
~/.ssh$ ls
yyy_id_rsa yyy_id_rsa.pub id_rsa id_rsa.pub known_hosts
Nota: dobbiamo aggiungere quindi all'agente ssh, probabilmente verrà aggiunto id_rsa quindi dobbiamo aggiungere l'altra chiave privata
~/.ssh$ ssh-add yyy_id_rsa
ora abbiamo aggiunto entrambe le chiavi ssh a ssh-agent
ne abbiamo uno per bitbucket e uno per github
quindi creiamo un file di configurazione come questo
~/.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
Nota: sto usando 2 chiavi diverse per 2 account diversi su bitbucket e una per github.
Ora dobbiamo dire al repository git quale host utilizzare in modo da ottenere quella chiave ssh specifica per quell'account specifico
cambia git@bitbucket.orgyyyuser/yyyproject.git
ingit@bit-yyyuser:yyyuser/yyyproject.git
quindi nella cartella del progetto e aggiungi l'URL remoto
/var/www/yyyproject$ git remote add bit git@bit-yyyuser:yyyuser/yyyproject.git
in altri progetti
/var/www/xxxproject$ git remote add bitt git@bit-xxxuser:xxxuser/xxxproject.git
ora puoi usare push and pull facilmente
:/var/www/yyyproject$ git pull bit master
From bit-yyyuser:yyyuser/yyyproject
* branch master -> FETCH_HEAD
Already up-to-date.
:/var/www/yyyproject$
e un altro progetto
/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$
ora non ho il progetto github sulla macchina locale, quindi dobbiamo clonare il progetto ma dobbiamo fare un piccolo cambiamento all'URL per clonare
il nostro url è così
git@github.com:xxxuser/python.git
poiché dobbiamo clonarlo con chiavi specifiche, dobbiamo solo cambiare il nome host con l'host che abbiamo definito
git@git-xxxuser:xxxuser/python.git
come definito nel file di configurazione
e ora possiamo clonare
:/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$
abbiamo identificato chiavi ssh diverse per host diversi, una per git e una per bitbucket ora il sistema sa quali chiavi ssh usare con quale host.
Ora possiamo facilmente tirare, spingere.