Если вы похожи на меня, вы можете:
Организовать ваши ssh-ключи
Упростить команды git clone
Обрабатывать любое количество ключей для любого количества репозиториев.
Сократить объем обслуживания ssh-ключей.
Я храню свои ключи в своем каталоге ~/.ssh/keys
.
Я предпочитаю соглашение по конфигурации.
Я думаю, что код - это закон;чем проще, тем лучше.
ШАГ 1 - Создание псевдонима
Добавьте этот псевдоним в свою оболочку: alias git-clone='GIT_SSH=ssh_wrapper git clone'
ШАГ 2 - Создание сценария
Добавление этого сценария ssh_wrapper к вашей PATH:
#!/bin/bash
# Filename: ssh_wrapper
if [ -z ${SSH_KEY} ]; then
SSH_KEY='github.com/l3x' # <= Default key
fi
SSH_KEY="~/.ssh/keys/${SSH_KEY}/id_rsa"
ssh -i "${SSH_KEY}" "$@"
ПРИМЕРЫ
Используйте ключ github.com/l3x:
KEY=github.com/l3x git-clone https://github.com/l3x/learn-fp-go
В следующем примере также используется ключ github.com / l3x (по умолчанию):
git-clone https://github.com/l3x/learn-fp-go
Использованиеключ bitbucket.org/lsheehan:
KEY=bitbucket.org/lsheehan git-clone git@bitbucket.org:dave_andersen/exchange.git
NOTES
Измените значение по умолчанию SSH_KEY в скрипте ssh_wrapper на то, что вы используете большую часть времени.Таким образом, вам больше не нужно использовать переменную KEY большую часть времени.
Вы можете подумать: «Эй! Многое происходит с псевдонимом, скриптом и некоторым каталогом ключей», нодля меня это условность.Почти все мои рабочие станции (и серверы в этом отношении) настроены одинаково.
Моя цель здесь - упростить команды, которые я выполняю регулярно.
Мои соглашения, например скрипты Bash, псевдонимы,и т.д., создайте согласованную среду и помогите мне упростить задачу.
Поцелуи и имена имеют значение.
Дополнительные советы по проектированию можно найти в Главе 4 SOLID Design in Go отмоя книга: https://www.amazon.com/Learning-Functional-Programming-Lex-Sheehan-ebook/dp/B0725B8MYW
Надеюсь, это поможет.- Lex