Настройка групповых ключей ssh ​​без изменения ~/.ssh/config в Linux

Настройка групповых ключей ssh ​​без изменения ~/.ssh/config в Linux

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

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

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

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

решение1

Итак, ответы следующие (спасибо, Tink):

Использование 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флагом.

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

Связанный контент