Использование Git с двумя или более пользователями

Иногда нам необходимо использовать более одного пользователя Git на одной машине. Это просто настроить, но перед использованием этой функции нам нужно знать несколько вещей.

Создание дополнительного ключа SSH

По умолчанию ключ SSH создается в каталоге ~/.ssh/ и называется id_rsa или id_ed25519, в зависимости от типа подписи. Для создания ключа с определенным именем файла мы можем использовать следующую команду

ssh-keygen -f filename -t ed25519 -C 'machine_name'
Войти в полноэкранный режим Выйти из полноэкранного режима

💡 Если вы собираетесь использовать этот ключ для определенной организации, очень полезно использовать формат id_orgname для имени файла.

Комментарий, указанный с помощью аргумента -C, должен быть чем-то полезным, чтобы знать, зачем был создан этот ключ 🤔. Это может быть имя машины, которая использует этот SSH-ключ, или любое другое обозначение, которое поможет вам. Этот комментарий будет виден только вам.

Можем ли мы использовать один и тот же ключ для всех пользователей?

Это зависит от обстоятельств. Хостинги исходного кода, такие как GitHub, привязывают SSH-ключ к определенному пользователю платформы, чтобы знать, какой пользователь выкладывает код в Git-репозиторий, проверять доступ и т.д. Если ваша компания не использует Github, con также может использовать один и тот же ключ для личной почты в Github и почты вашей компании в GitLab.

Клонирование репозитория с определенным SSH-ключом

Команда git clone использует протокол SSH для подключения к хостингу Git, а программа SSH на вашей машине использует ключ по умолчанию (обычно расположенный по адресу ~/.ssh/id_ed25519) для аутентификации. Для клонирования репозитория с помощью этого ключа следует использовать пользовательскую команду SSH:

git clone --config core.sshCommand="ssh -i path/to/private_ssh_key" git@github.com:orgname/repo.git
Войти в полноэкранный режим Выйти из полноэкранного режима

🧠 Помните, что если имя ключа заканчивается на .pub, например, id_orgname.pub, то это и есть открытый ключ. Вы должны использовать файл ключа без этого расширения, потому что это ваш закрытый ключ.

Если вы хотите использовать другой адрес электронной почты, настройте его с помощью следующих команд:

git config user.name "John Doe"
git config user.email john@example.com
Войти в полноэкранный режим Выйти из полноэкранного режима

💡 Используйте аргумент --global, чтобы установить настройки по умолчанию для всех репозиториев Git на машине. В противном случае команда git config устанавливает значения конфигурации только для репозитория в текущем каталоге.

Изменение ключа для уже клонированного репозитория

Если вы клонировали Git-репозиторий, но вам нужно использовать новый SSH-ключ для отправки кода, вы можете использовать эту команду для установки новой SSH-команды:

git config core.sshCommand "ssh -i path/to/private_ssh_key"
Войти в полноэкранный режим Выйти из полноэкранного режима

Дополнительные советы по SSH

Возможно, в вашей компании Git-репозитории находятся на пользовательском порту 🙈 (22 — порт по умолчанию для SSH), вам нужно клонировать эти репозитории с помощью следующей опции:

git clone --config core.sshCommand="ssh -p 2222" git@git.example.com:path/to/repo.git
Войти в полноэкранный режим Выйти из полноэкранного режима

Заключение

Вы можете использовать специфические конфигурации Git для каждого репозитория, например, информацию об авторе коммита или специальные псевдонимы команд.

Варианты команд SSH для подключения к репозиторию по протоколу SSH могут быть изменены в любое время.

Оцените статью
devanswers.ru
Добавить комментарий