1

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

Поскольку git (как и многие другие программы) не позволяет определять флаг lag ssh -i информация о том, какой ключ будет использоваться, исходит из значений по умолчанию или из того, что определено в ~/.ssh/config

Это потребует новой задачи администрирования для пользователей, которым требуется эта возможность (т.е. добавьте соответствующие записи в их файл ~/.ssh/config ).

Можно ли как-нибудь сэкономить это усилие? Я не смог найти ни одной переменной среды, которая была бы прочитана OpenSSH, поскольку это было бы решением (путем создания сценария упаковки, который делает то, что требуется).

1 ответ1

0

Так что ответы таковы (спасибо тинк):

Использование ssh-agent для удержания ключа всегда будет работать. Для этого вы можете заключить вызов в скрипт:

#!/bin/bash
key=$1
[[ "$SSH_AGENT_PID" ]] || eval $(ssh-agent)
ssh-add $key

#...the rest of the script...

В конкретном случае git есть переменная окружения GIT_SSH которая указывает на команду, которая будет вызываться вместо ssh. Так что можно выдать ssh с флагом -i .

Просто чтобы предупредить вас, что это подтверждение концепции, вам нужно убедиться, что среда не пострадала после загрузки скрипта (т.е. если агент был там, а ключ не был загружен, вам нужно удалить ключ, если агент не был представить, удалить агента и т. д.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .