Если вы похожи на меня, вы можете:
Держите ваши ключи SSH организованными
Сделайте ваши команды git clone простыми
Обрабатывать любое количество ключей для любого количества репозиториев.
Сократите обслуживание ssh-ключей.
Я храню свои ключи в своем ~/.ssh/keys
каталоге.
Я предпочитаю соглашение по конфигурации.
Я думаю, что кодекс - это закон; чем проще, тем лучше.
ШАГ 1 - Создание псевдонима
Добавьте этот псевдоним в вашу оболочку: alias git-clone='GIT_SSH=ssh_wrapper git clone'
ШАГ 2 - Создание сценария
Добавьте этот скрипт ssh_wrapper в ваш путь :
#!/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
НОТЫ
Измените значение по умолчанию SSH_KEY в скрипте ssh_wrapper на то, что вы используете большую часть времени. Таким образом, вам не нужно использовать переменную KEY большую часть времени.
Вы можете подумать: «Эй! Многое происходит с псевдонимом, скриптом и некоторым каталогом ключей», но для меня это соглашение. Почти все мои рабочие станции (и серверы в этом отношении) настроены одинаково.
Моя цель здесь - упростить команды, которые я выполняю регулярно.
Мои условные обозначения, например скрипты Bash, псевдонимы и т. Д., Создают согласованную среду и помогают мне быть проще.
Поцелуй и имена имеют значение.
Дополнительные советы по дизайну можно найти в главе 4 SOLID Design in Go из моей книги: https://www.amazon.com/Learning-Functional-Programming-Lex-Sheehan-ebook/dp/B0725B8MYW
Надеюсь, это поможет. - Лекс