前言
子工程数量太多, 挨个clone
实在有些慢, 于是乎我写了一个自动化脚本, 如下:
1 | # 循环添加子模块 |
可问题来了, 每拉取一个仓库都需要手动输入ssh
密钥密码, 实在有些繁琐, 该如何解决呢?
解决方案
方案一
将密钥添加到ssh-agent
中,执行以下指令:
1 | ssh-add ~/.ssh/id_rsa |
默认密钥名称为id_rsa
, 如果你有自定义的名称, 进行对应修改即可
方案二
使用第三方工具, 这里以Mac
为例, 使用sshpass
工具来实现, 具体操作如下:
安装
sshpass
包1
brew install hudochenkov/sshpass/sshpass
修改自动化脚本
在脚本中添加
export SSHPASS
代码, 如下:1
2
3
4
5
6export SSHPASS="这里填ssh密码"
# 循环添加子模块
for i in {5..10}; do
git submodule add -b master "git@github.com:xxx/xxx_p${i}.git"
done
该方案由于是明文存储密码, 所以安全性自然差一些
方案三
在生成ssh
密钥时, 不设置密码, 直接回车即可
也就是说单独生成一个无需密码的新ssh
密钥来使用
使用自动化部署的时候, 我通常会这么干
本文为作者原创 转载时请注明出处 谢谢