如果您像我,可以:
保持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_wrapper脚本中的默认SSH_KEY更改为大多数时间使用的内容。这样,您就不需要在大多数时间使用KEY变量。
您可能会想,“嘿!别名,脚本和一些键目录要花很多时间,”但是对我来说这是惯例。我的几乎所有工作站(以及与此相关的服务器)的配置都差不多。
我的目标是简化我经常执行的命令。
我的约定(例如Bash脚本,别名等)创建了一个一致的环境,并帮助我简化了事情。
吻和名字很重要。
有关更多设计技巧,请从我的书中查看Go中的第4章SOLID Design:https://www.amazon.com/Learning-Functional-Programming-Lex-Sheehan-ebook/dp/B0725B8MYW
希望能有所帮助。-莱克斯