Я хочу использовать разные файлы закрытого ключа для подключения к разным SSH-серверам (ssh://git-server:port/repository
). Как это сделать? SSH, похоже, предполагает наличие файла закрытого ключа в ~/.ssh/id_rsa
.
2 ответа
Вот почему есть опция -i
:
-i identity_file
Выбирает файл, из которого читается идентификатор (закрытый ключ) для аутентификации RSA или DSA. По умолчанию используется
~/.ssh/identity
для версии протокола 1 и~/.ssh/id_rsa
и~/.ssh/id_dsa
для версии протокола 2.Файлы идентификации также могут быть указаны для каждого хоста в файле конфигурации. Можно иметь несколько параметров
-i
(и несколько идентификаторов, указанных в файлах конфигурации).
Если вы хотите сделать это постоянным, вам нужно настроить конфигурационный файл SSH и установить соответствующий параметр IdentityFile
.
IdentityFile
Указывает файл, из которого читается идентификационная информация аутентификации пользователя DSA, ECDSA или DSA. [...]
Если вы видите диалог, похожий на этот:
Вам необходимо ввести пароль пользователя для вашей учетной записи OS X. Не ваша ключевая фраза или пароль удаленного SSH. Это потому, что они не были сохранены в цепочке для ключей.
Согласно этому руководству, следующая команда должна добавить их соответствующим образом:
ssh-add -K
Самый простой способ сделать это с помощью конфигурационного файла ssh.
cat ~/.ssh/config
HOST *
USER root
Вы также можете указать определенные поддомены использования определенных пользователей. Полезно, если ваш ноутбук путешествует между сетями.
HOST 192.168.*.*
USER homeuser
HOST 10.2.*.*
USER workuser
Вы даже можете настраивать по доменам и использовать разные ключи ssh для разных доменов.
HOST *.microsoft.com
USER bill
IdentityFile ~/.ssh/microsoft/id_rsa
HOST *.apple.com
USER steve
IdentityFile ~/.ssh/apple/id_rsa