Различные ключи, чтобы нажать и вытащить в Git хранилище - PullRequest
1 голос
/ 07 декабря 2011

Я использую gitosis для размещения репозитория git на моем домашнем сервере.

Я настроил его на прием трех ключей SSH: мой основной (без пароля) с доступом для чтения / записи, мой парольодин (который мне удобнее ставить на серверы, на котором другие люди имеют права root) с доступом для чтения / записи, и третий ключ с доступом только для чтения.

Идея заключается в том, что на удаленном хосте (который я надеваюне принадлежит, так что у кого-то еще есть root) У меня может быть свой секретный ключ с паролем и третий (только для чтения) ключ, а затем на этом компьютере я могу вытащить без пароля и нажать обратно с помощью пароля.

С Gitosis все в порядке, и он примет любой ключ с правильными разрешениями.Но я не могу заставить все работать так, как хочу, когда использую оба ключа.Я указываю на них в своей конфигурации SSH - в ~ / .ssh / config на удаленном хосте у меня есть следующее:

Host *
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa.passphrase

Когда я просто тяну или клонирую, все нормально - операция завершаетсяне запрашивая у меня пароль.Но когда я нажимаю, я получаю сообщение о том, что у меня нет разрешения.Он явно пробовал только первый ключевой файл.

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

Есть ли способ получить желаемое поведение - то есть, чтобы он использовал один файл ключа при выполнении push и других операций записи, а другой - при выполненииоперации только для чтения?

1 Ответ

1 голос
/ 07 декабря 2011

Вы можете настроить несколько пультов для этого.У каждого пульта может быть свой URL.Ваши URL-адреса могут быть настроены в вашем файле .ssh / config так, чтобы они указывали на то, где вы хотите, и использовали любой ключ, который вам нужен.

...