Це все зібране з веб-сайту та stackoverflow, сподіваємось, це допоможе новачкам у ssh
тож у вас може бути багато ключів ssh
~/.ssh$ ls
yyy_id_rsa yyy_id_rsa.pub id_rsa id_rsa.pub known_hosts
Примітка: нам потрібно додати потім до ssh-агента, ймовірно, буде доданий id_rsa, тому нам потрібно додати інший приватний ключ
~/.ssh$ ssh-add yyy_id_rsa
тепер ми додали обидва ключі ssh до ssh-агента
у нас є один для bitbucket і один для github
тому ми створюємо такий конфігураційний файл
~/.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
Примітка. Я використовую 2 різні клавіші для двох різних облікових записів у бітбукеті та одного для github.
Тепер нам потрібно сказати репозиторію git, який хост використовувати, щоб я отримав специфічний ключ ssh для цього конкретного облікового запису
зміни git@bitbucket.orgyyyuser/yyyproject.git
наgit@bit-yyyuser:yyyuser/yyyproject.git
тому у папці проекту та додайте віддалений URL
/var/www/yyyproject$ git remote add bit git@bit-yyyuser:yyyuser/yyyproject.git
в іншому проекті
/var/www/xxxproject$ git remote add bitt git@bit-xxxuser:xxxuser/xxxproject.git
тепер ви можете легко натискати і тягнути
:/var/www/yyyproject$ git pull bit master
From bit-yyyuser:yyyuser/yyyproject
* branch master -> FETCH_HEAD
Already up-to-date.
:/var/www/yyyproject$
та ще один проект
/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$
тепер у мене немає проекту github на локальній машині, тому нам потрібно клонувати проект, але нам потрібно внести невеликі зміни в URL для клонування
наша URL-адреса така
git@github.com:xxxuser/python.git
тому що ми повинні клонувати його певними ключами, нам просто потрібно змінити ім'я хоста з визначеним нами хостом
git@git-xxxuser:xxxuser/python.git
як визначено у конфігураційному файлі
і тепер ми можемо клонуватись
:/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$
ми визначили різні ключі ssh для різних хостів, один для git та один для bitbucket, тепер система знає, які ключі ssh використовувати для якого хоста.
Тепер ми можемо легко тягнути, штовхати.