我有多台计算机在同一个项目上工作,而我正在使用免费的assembla git repo帐户来管理所有这些。
为了访问git repo,我需要在每台计算机上生成唯一的SSH密钥。 但是,计算机也可能正在处理其他的assembla项目,因此每当我生成一个新的ssh密钥时就会出现冲突(就像我必须继续替换id_rsa文件)。 一旦我在本地机器上重新创建id_rsa文件(并替换它们),它就会使用先前生成的ssh密钥失去对先前的assembla git项目的访问权。
我对整个git业务都很陌生,并且在我去的时候努力学习。
我找到的东西听起来像是我问题的解决方案: “针对不同项目的不同SSH密钥” http://www.assembla.com/spaces/breakoutdocs/wiki/Different_SSH_keys_for_different_projects
但是,我不明白怎么做#1?它说“在$ PATH中放置一个这个脚本(让它的名字为gitssh)”,但我不知道“$ PATH”是什么/在哪里?
非常感谢任何帮助。 谢谢!
答案 0 :(得分:5)
您可以根据需要创建任意数量的公共/私人ssh密钥
只需不要使用默认名称id_rsa
和id_rsa.pub
。
但是,不使用默认命名约定意味着默认情况下,ssh无法找到您的密钥
您需要在~/.ssh
目录中定义一个配置文件,您将在其中指明要使用的私钥:
Host myproject1
HostName server1
IdentityFile ~/.ssh/project1.rsa
User username
如果您已将myproject1
添加为遥控器,则可以推至myproject1
有关ssh问题排查的信息,请参阅“Unable to Git-push master to Github”,有关将ssh地址添加为遥控器的信息,请参阅“Specify an SSH key for git push without using ~/.ssh/config
”。
您可以根据需要在~/.ssh/config
文件中添加任意数量的地址,每个地址都可以引用您可以根据需要命名的私钥。