当我设置Git时,我是在使用dsl调制解调器的时候做的,而且我的ip不是静态的,所以当我为Git生成ssh密钥时,它基于该ip。
当我分配了一个不是用于生成ssh Git键的ip时,我可以手动将ip地址更改为用于生成密钥的IP地址。我绕过这一步的其他选择是什么?动态DNS?还有另一种方式吗?
更新
好的,所以密钥不受IP地址的影响。我做了一个git push origin master并得到了一个无法识别的密钥错误,并认为这是ip地址。我将不得不尝试重新生成该错误。
答案 0 :(得分:3)
SSH密钥根本不使用您的IP地址进行生成或识别。如果在要连接的计算机上设置某种IP过滤,则只会遇到问题,“仅允许来自某个IP地址的此用户的SSH连接。”
您遇到问题的唯一另一个问题是,您连接的计算机是否获得了新的IP地址,因为您的SSH客户端会发现与您的known_hosts文件(〜/ .ssh / known_hosts)相比存在差异。这是为了防止中间人攻击。如果您希望IP更改,那么您只需从known_hosts文件中删除不再有效的行。
干杯。
答案 1 :(得分:1)
我不确定在为Git创建ssh密钥时会考虑哪些因素,但每次IP更改时都不需要重新创建/编辑密钥。我在各种计算机上创建了3或4个密钥,用于Github。所有这些都是在动态IP上创建的,并且已经多次使用,因为无需进行任何编辑。
答案 2 :(得分: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和putty套件组成。