2010-04-14 120 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文件中刪除不再有效的行。

乾杯。