2010-04-14 122 views
1

当我设置Git时,我在使用dsl调制解调器时做到了这一点,而且我的IP不是静态的,所以当我为Git生成ssh密钥时,它基于该ip。Git-ssh密钥/ IP地址

当我被分配一个不是用于生成ssh Git密钥的ip时,我可以手动将ip地址更改为用于生成密钥的ip地址。我有什么其他选择可以绕过这一步?动态DNS?有另一种方法吗?

更新:

好了,关键是不能由IP地址的影响。我做了一个git push origin master并且得到了一个无法识别的关键错误,并认为它是ip地址。我必须尝试重新生成该错误。

+2

我不认为你的ip地址被用于ssh-key生成。 – akosch 2010-04-14 15:13:53

+0

至少有一个解决方法可用于此错误:http://stackoverflow.com/questions/4931384/git-server-host-key-not-cached – vyda 2013-07-02 14:16:54

回答

0

我应该在我的问题上更清楚一点,我没有使用GitHub - 所讨论的Git服务器是我自己的笔记本电脑,而不是GitHub,所以它是服务器IP在调制解调器/路由器。

我做了什么来解决这个问题是每个IP,puttygen一个密钥对。然后我将公钥添加到authorized_keys文件中,为我的其他机器保留了私钥的副本,并为每个IP地址添加了一个putty以将密钥添加到putty的缓存中。现在我只是为调制解调器分配的每个IP执行此操作。痛苦,但只有一次,而不是一直改变ips。

虽然我必须将.git目录中配置文件的远程部分更新为IP地址。我想我可以根据IP地址为远程部分中的每个IP地址添加一个单独的部分,并加上相应的分支部分。

这是我得到的错误:

The server's host key is not cached in the registry. You 
have no guarantee that the server is the computer you 
think it is. 
The server's rsa2 key fingerprint is:... 
Connection abandoned. 
fatal: The remote end hung up unexpectedly

我的设置是在Windows 7上,由Cygwin的(仅SSH),msysgit和腻子套件。

1

我不确定在为Git创建ssh密钥时要考虑哪些因素,但每次IP更改时都不需要重新创建/编辑密钥。我在各种计算机上创建了3或4个用于Github的密钥。所有这些都是在动态IP上创建的,并且已经使用了很多次,因为无需进行任何编辑。

3

SSH密钥根本不使用您的IP地址进行生成或标识。如果您在要连接的计算机上设置某种IP筛选,则只会遇到问题,“仅允许来自特定IP地址的此用户的SSH连接”。

只有当您连接的计算机有新的IP地址时,您的唯一一次遇到问题时,您的SSH客户端会发现与您的known_hosts文件(〜/ .ssh/known_hosts)相比存在差异。这是为了防止中间人受到攻击。如果您希望IP更改,那么您只需从known_hosts文件中删除不再有效的行。

干杯。