Jeśli jesteś podobny do mnie, możesz:
Trzymaj klucze ssh w porządku
Utrzymuj proste polecenia klonowania git
Obsługa dowolnej liczby kluczy dla dowolnej liczby repozytoriów.
Ogranicz obsługę klucza SSH.
Trzymam klucze w ~/.ssh/keys
katalogu.
Wolę konwencję niż konfigurację.
Myślę, że kodeks jest prawem; im jest to prostsze, tym lepiej.
KROK 1 - Utwórz alias
Dodaj ten alias do swojej powłoki: alias git-clone='GIT_SSH=ssh_wrapper git clone'
KROK 2 - Utwórz skrypt
Dodaj ten skrypt ssh_wrapper do ŚCIEŻKI:
#!/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}" "$@"
PRZYKŁADY
Użyj klucza github.com/l3x:
KEY=github.com/l3x git-clone https://github.com/l3x/learn-fp-go
W poniższym przykładzie użyto również klucza github.com/l3x (domyślnie):
git-clone https://github.com/l3x/learn-fp-go
Użyj klucza bitbucket.org/lsheehan:
KEY=bitbucket.org/lsheehan git-clone git@bitbucket.org:dave_andersen/exchange.git
UWAGI
Zmień domyślny klucz SSH_KEY w skrypcie ssh_wrapper na używany przez większość czasu. W ten sposób nie musisz przez większość czasu używać zmiennej KEY.
Możesz pomyśleć: „Hej! To się często dzieje z aliasem, skryptem i katalogiem kluczy”, ale dla mnie to konwencja. Prawie wszystkie moje stacje robocze (i serwery w tym zakresie) są skonfigurowane podobnie.
Moim celem jest uproszczenie poleceń, które wykonuję regularnie.
Moje konwencje, np. Skrypty Bash, aliasy itp., Tworzą spójne środowisko i pomagają mi uprościć sprawę.
KISS i imiona mają znaczenie.
Więcej wskazówek dotyczących projektowania znajduje się w rozdziale 4 SOLID Design in Go z mojej książki: https://www.amazon.com/Learning-Functional-Programming-Lex-Sheehan-ebook/dp/B0725B8MYW
Mam nadzieję, że to pomaga. - Lex