Якщо ти схожий на мене, ти можеш:
Організуйте свої 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
ПРИМІТКИ
Змініть SSH_KEY за замовчуванням у скрипті ssh_wrapper на те, що ви використовуєте більшу частину часу. Таким чином, вам не потрібно використовувати змінну KEY більшу частину часу.
Ви можете подумати: "Гей! Це багато чого відбувається з псевдонімом, сценарієм і деяким каталогом ключів", але для мене це умовність. Майже всі мої робочі станції (і сервери з цього приводу) налаштовані аналогічно.
Моя мета тут - спростити команди, які я регулярно виконую.
Мої конвенції, наприклад, сценарії Баша, псевдоніми тощо, створюють послідовне середовище і допомагають мені робити прості речі.
KISS та назви мають значення.
Щоб отримати додаткові поради щодо дизайну, перегляньте Розділ 4 SOLID Design у моїй книзі: https://www.amazon.com/Learning-Functional-Programming-Lex-Sheehan-ebook/dp/B0725B8MYW
Сподіваюся, що це допомагає. - Лекс