Чи можу я мати декілька ключів ssh у своїй папці .ssh?


30

Чи можу я створити кілька ключів ssh та перейменувати їх на зручні для користувача імена, щоб я знав, який ключ для якого веб-сайту тощо.

Це безпечно?

наприклад:

github_id_rsa
github_id_rsa.pub
..
...

Як дізнається, на якому ключі слід перевірити під час з'єднання?

На моєму комп’ютері зараз, коли я дивлюся на known_hosts, вони, схоже, мають однаковий ключ після імені хоста ??



Також відомі хост-ключі, безумовно, не однакові, просто подивіться на кінці рядків для кожного хоста.
slhck

Відповіді:


15

Так, ви можете мати різні клавіші ssh. На веб-сайті Help.GitHub є дуже хороша документація на Help.GitHub - декілька ключів SSH . По суті, ви будете використовувати ssh-add для додавання додаткових ключів, щоб агент міг їх використовувати. Потім ви налаштовуєте конфігурацію ssh-хостів, щоб тут було шукано будь-які ssh-з'єднання до різних доменів і буде використана відповідна клавіша. Щасти!


1
Посилання більше не працює
danwellman


44

Ви можете змінити файл ~ / .ssh / config, щоб використовувати різні файли ідентичності для різних серверів. Відредагуйте параметр ~ / .ssh / у своєму улюбленому редакторі та додайте запис, відповідний вашій ситуації, наприклад:

Host *
IdentityFile ~/.ssh/id_rsa

Host *.github.*
IdentityFile ~/.ssh/github_id.rsa

Host *.someother.com
IdentityFile ~/.ssh/someother_id.rsa

Перша частина вище встановлює параметри за замовчуванням для всіх хостів, а інші розділи переосмислюють те, що слід використовувати для кожного хоста, що відповідає шаблонам. Якщо у вас є інше ім’я користувача для кожного з хостів, то ви можете додати до розділу ключ користувача, а потім ім'я користувача на пульті дистанційного керування.


3
Це найкорисніша відповідь на це питання незалежно від місця призначення, GitHub чи інших сайтів.
П’єр

Це не спрацьовує, якщо у вас є кілька облікових записів бітбукета і вам потрібно мати різні ключі для кожного, на жаль.
Джон Малий

chmod 400 ~/.ssh/id_rsaабо chmod 400 ~/.ssh/foo_id.rsaможе знадобитися.
T.Woody

@JohnLittle Подивіться на мою відповідь, яка вирішує багатокористувацький обліковий запис для одного домену.
Sathishkumar Rakkiasamy

4

Ви можете налаштувати кілька ключів ssh для будь-якого сайту, що має кілька облікових записів користувачів

Нижче наводиться приклад, який я слідкував у своїй розробці для GitHub.com

Налаштування прикладу файлу

#Personal account
 Host github.com-<personal-account-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_personal
 IdentitiesOnly yes



#Organization account
 Host github.com-<organization-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_work
 IdentitiesOnly yes

На момент додавання нового походження

Для особистого рахунку

git remote add origin git@github.com-<personal-account-name>:<personal-account-name>/<repo-name>.git

Для облікового запису організації

git remote add origin git@github.com-<organization-name>:<organization-name>/<repo-name>.git

Сподіваюся, це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.