Могу ли я иметь несколько ключей ssh ​​в моей папке .ssh?


30

Могу ли я создать несколько ключей ssh ​​и переименовать их в понятные имена, чтобы я знал, какой ключ для какого веб-сайта и т. Д.

Это безопасно?

например:

github_id_rsa
github_id_rsa.pub
..
...

Как он узнает, какой ключ проверять при подключении?

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



Кроме того, известные ключи хоста определенно не совпадают, просто посмотрите на концы строк для каждого хоста.
Slhck

Ответы:


15

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


1
Ссылка больше не работает
Danwellman


44

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

Host *
IdentityFile ~/.ssh/id_rsa

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

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

Первая часть выше устанавливает значения по умолчанию для всех хостов, а другие разделы переопределяют то, что следует использовать для каждого из хостов, соответствующих шаблонам. Если у вас есть разные имена пользователей для каждого из хостов, вы можете добавить в раздел ключ пользователя с последующим именем пользователя на пульте.


3
Это самый полезный ответ на этот вопрос, независимо от того, где находится GitHub или другие сайты.
Пьер

Это не работает, если у вас есть несколько учетных записей bitbucket и, к сожалению, вам нужны разные ключи для каждой из них.
Джон Литтл

chmod 400 ~/.ssh/id_rsaили chmod 400 ~/.ssh/foo_id.rsaможет быть необходимо.
Т. Вуди

@JohnLittle Посмотрите на мой ответ, который решает многопользовательскую учетную запись для того же домена.
Сатишкумар Раккиасамы

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.