前言
子工程数量太多, 挨个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
 6- export SSHPASS="这里填ssh密码" 
 # 循环添加子模块
 for i in {5..10}; do
 git submodule add -b master "git@github.com:xxx/xxx_p${i}.git"
 done
该方案由于是明文存储密码, 所以安全性自然差一些
方案三
在生成ssh密钥时, 不设置密码, 直接回车即可
也就是说单独生成一个无需密码的新ssh密钥来使用
使用自动化部署的时候, 我通常会这么干
本文为作者原创 转载时请注明出处 谢谢
