Как использовать другой закрытый SSH-ключ для команд оболочки Git – CloudSavvy IT

Логотип Git

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

Как SSH работает с Git?

Git не просто использует ваш закрытый ключ для аутентификации, когда вы используете SSH вместо HTTPS – он фактически устанавливает настоящее SSH-соединение с удаленным сервером. Он делает это незаметно, поэтому вы можете не знать о выполняемых им командах, но он использует ssh под капотом.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Поскольку он использует вашу команду ssh по умолчанию, он будет действовать так, как будто вы только что запустили его самостоятельно, и будет использовать ключ по умолчанию в ~ / .ssh / id_rsa. Вероятно, это не то, что вам нужно, если вы здесь читаете это, поэтому, чтобы изменить это, вам нужно отредактировать конфигурацию SSH, а не Git.

Создание нового ключа SSH

Для этого вам в первую очередь понадобится один, а сделать это довольно просто. Просто запустите ssh-keygen и укажите новое имя ключа с помощью флага -f. Это создаст закрытый ключ и открытый ключ с расширением .pub.

ssh-keygen -t rsa -f ~ / .ssh / github

Редактирование ~ / .ssh / config

Файл конфигурации SSH позволяет установить «Хосты», которые будут соответствовать тому, к чему вы подключаетесь, и разрешить изменение файла, который использует ssh.

Хост github Имя хоста github.com IdentityFile ~ / .ssh / id_rsa.github IdentitiesOnly yes

Это позволит вам использовать SSH-ключ, отличный от вашего основного, для всех запросов, поступающих на github.com, но что, если вы хотите использовать два разных ключа для отдельных репозиториев Git? Например, один для вашей рабочей учетной записи, а другой для вашей личной учетной записи.

Что ж, вам нужно определить две конфигурации с разными именами, используя один и тот же хост:

Персональное имя хоста github.com IdentityFile ~ / .ssh / githubpersonal IdentitiesOnly yes Работа хоста Имя хоста github.com IdentityFile ~ / .ssh / githubwork IdentitiesOnly yes

Обычно это приводит к противоречивой конфигурации, но Git предоставляет способ обойти это. Если у вас есть удаленный репозиторий, такой как Github, связанный с вашим локальным репозиторием, удалите его:

git удаленное удаление источника

Затем вместо добавления github.com в качестве удаленного замените его именем хоста в файле конфигурации SSH. Git распознает это и использует этот SSH-хост для подключения. Вы можете установить отдельные хосты для каждого репозитория.

git удаленное добавление источника git @ personal: имя пользователя / repository.git

Переопределение вручную

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

GIT_SSH_COMMAND = ‘ssh -i ~ / .ssh / github -o UserKnownHostsFile = / dev / null -o StrictHostKeyChecking = no’

Любые команды Git, которые вы запускаете впоследствии в том же сеансе оболочки, будут использовать эту команду SSH вместо команды по умолчанию. Вы также можете установить совершенно другой двоичный файл SSH с помощью GIT_SSH.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *