悲伤的故事 - git + ssh + ruby

时间:2010-02-16 10:51:08

标签: ruby git ssh

问题:

我需要在ruby中验证git repo属性(ssh key,repo url) 解决方案:

1)将ssh密钥写入~/.ssh/id_rsa文件并使用repo url属性执行git clone命令 - 最简单的方法

  • 当多个用户试图检查他们的回购时会导致竞争条件。

2)将密钥写入任何文件和链接服务器并键入ssh.config文件,而不是按顺序执行git

- ssh.config文件的长度有限(255条记录)

3)通过ssh-agent添加密钥并按顺序执行git

  • ruby​​无法处理密码短语请求(如果使用密码短语保护ssh密钥)

恢复:

所以我需要通用解决方案(如ssh -i),它易于使用,干净,可在多线程环境中工作,所有错误都可以通过基本IO(exec等)处理

1 个答案:

答案 0 :(得分:2)

也许你可以使用GIT_SSH环境变量让git使用你自己的SSH包装器。该脚本可以查看其他环境变量,并使用适当的选项调用ssh