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

30

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

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

например:

github_id_rsa
github_id_rsa.pub
..
...

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

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

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

Ответы:

15

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

ArtemT
источник
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

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

joehep
источник
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

Надеюсь, это поможет.

Сатишкумар Раккиасамы
источник