使用ssh无法将代码提交存储库克隆到Codebuild

时间:2018-08-01 05:32:40

标签: git ssh expect aws-codebuild aws-codecommit

我需要从多个Codecommit存储库中获取一些文件到Ubuntu Codebuild实例上。所以我正在尝试使用ssh身份验证克隆存储库。我已经在实例上设置了ssh密钥和配置文件,当我执行git clone时会遇到麻烦。我正在使用expect来响应第一次ssh连接提示。这是我的期望脚本cloneRepo.sh

  

#!/ usr / bin / expect

     

设置超时20

     

生成git克隆   ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/myrepo   / tmp / myrepo

     

期望“您确定要继续连接(是/否)吗?” {发送   “是\ r”}

     

期望“解决增量:100%(* / *),完成。” {}

     

互动

当我在Codebuild中运行它时,一切看起来都还不错:

  

[容器]运行命令echo“克隆Git存储库”
  克隆Git存储库

     

[Container]运行命令sudo ./cloneRepo.sh
  生成git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/myrepo / tmp / myrepo
  克隆到'/ tmp / myrepo'...
  无法确定主机“ git-codecommit.us-east-1.amazonaws.com”的真实性。
  RSA密钥指纹是a6:9c:7d:bc:35:f5:d4:5f:8b:ba:6f:c8:bc:d4:83:84。
  您确定要继续连接(是/否)吗?是的
  警告:将“ git-codecommit.us-east-1.amazonaws.com”(RSA)永久添加到已知主机列表中。

     

远程:
  远程:计数对象:0
  远程:计数对象:已完成40个。
  接收物体:2%(1/40)
  ...
  接收物体:100%(40/40)
  接收物体:100%(40/40),6.66 KiB |已完成6.66 MiB / s。
  解析增量:0%(0/20)
  ...
  解析增量:已完成100%(20/20)。
  解析增量:100%(20/20)

但是,/tmp/仍然为空:

  

[容器]运行命令ls -la / tmp /
  共8
  drwxrwxrwt 2根根4096 Aug 1 02:04。
  drwxr-xr-x 22根根4096 Aug 1 02:02 ..


这看起来像是某种权限错误,但我只是无法动弹。

谢谢!

1 个答案:

答案 0 :(得分:0)

我通过在期望脚本中的sleep 10之前添加interact来解决此问题。 我认为,无论预期脚本结束还是Codebuild继续运行,克隆过程都没有完全完成。添加暂停可以使克隆完成。