2011-11-17 47 views
4

我有多台计算机在同一个项目上工作,并且我使用免费的组合库管理帐户来管理所有这些。git + assembla +多个ssh密钥/多台计算机

为了访问git repo,我需要在每台计算机上生成唯一的SSH密钥。 但是,一台计算机也可能在其他组合项目上工作,所以每当我生成一个新的ssh密钥时(如我必须不断更换id_rsa文件),似乎都会有冲突。 一旦我在本地机器上重新创建了id_rsa文件(并替换它们),它就会使用先前生成的ssh密钥失去对之前的组合项目的访问权限。

我对整个git业务还相当陌生,并且努力学习。

我发现的东西,听起来像一个解决我的问题: “不同的SSH密钥为不同的项目” http://www.assembla.com/spaces/breakoutdocs/wiki/Different_SSH_keys_for_different_projects

不过,我不知道该怎么办#1?它说“放置在$ PATH这个脚本的某处(让它的名字是gitssh)”,但我不知道“$ PATH”是什么/哪里?

任何帮助将不胜感激。 谢谢!

+0

为什么你需要重新创建独特的ssh密钥?我有几台笔记本电脑,而且我都拥有相同的密钥。如果笔记本电脑被盗,我只需从远程服务器上删除密钥(或者在其他人维护它时请求该密钥)。 如果Assembla需要每个项目不同的密钥,请尝试上传相同的密钥。如果这不让你,我会转储Assembla。并与其他提供商或与Gitolite一起推出自己的产品。 –

回答

5

您可以根据需要创建任意数量的公钥/私钥ssh密钥。
只需不要使用默认名称id_rsaid_rsa.pub

但是,不使用默认的命名约定意味着默认情况下ssh不会找到您的密钥。
你需要在你的~/.ssh目录定义配置文件,在那里你会指出哪些私有密钥的使用方法:

Host myproject1 
    HostName server1 
    IdentityFile ~/.ssh/project1.rsa 
    User username 

然后,您可以推到myproject1如果已经添加myproject1为远程。
另请参阅“Unable to Git-push master to Github”用于ssh故障诊断,“Specify an SSH key for git push without using ~/.ssh/config”用于将您的ssh地址添加为远程。

您可以根据需要为~/.ssh/config文件添加尽可能多的地址,每个地址都指向您可以根据需要命名的私钥。

+0

不得不玩一下,但通过你提到的链接之后,让它工作!谢谢!! – Jay

+0

我用作参考的另一个链接:http://osxdaily.com/2011/04/05/setup-ssh-config-fie/(创建配置文件) – Jay