簡體   English   中英

Windows真的能自發地為git重新生成我的ssh密鑰嗎?

[英]Did Windows really just spontaneously regenerate my ssh key for git?

多年來,每當我(或公司中的其他任何人)每次嘗試在Windows上使用git時,一切都會在一段時間內正常工作,直到突然之間好像它不再知道ssh密鑰一樣。 它將不再提示我輸入密碼,而是要求我輸入git服務器的密碼。

ssh -v向我指出了正確的方向,即Windows知道我的ssh密鑰,但是它似乎未被我的服務器接受。

    $ ssh -v git@git.myhost.lan
OpenSSH_6.6.1, OpenSSL 1.0.1i 6 Aug 2014
debug1: Reading configuration data /c/Users/eschjen/.ssh/config
debug1: /c/Users/eschjen/.ssh/config line 1: Applying options for git.myhost
.lan
debug1: Connecting to git.myhost.lan [10.116.22.40] port 22.
debug1: Connection established.
debug1: identity file /c/Users/eschjen/.ssh/id_rsa type 1
debug1: identity file /c/Users/eschjen/.ssh/id_rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5* compat 0x0c000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA ae:81:77:0d:1c:8e:6a:aa:a8:69:36:1b:e4:ca:33:ee
debug1: Host 'git.myhost.lan' is known and matches the RSA host key.
debug1: Found key in /c/Users/eschjen/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mi
c,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /c/Users/eschjen/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mi
c,password
debug1: Next authentication method: password
git@git.myhost.lan's password:

查看我的服務器,可以看到我的舊Windows公共ssh密鑰已上傳,但不再與我的計算機上的密鑰匹配。 像上一台新計算機一樣上載新密鑰可以完全解決問題。

這是Windows偶爾執行的操作嗎? 為什么我的鑰匙突然變成無效? 我大概是不到一年前生成的。

Windows不會自行重置ssh密鑰。

但是id_rsa / id_rsa.pub默認的 ssh私鑰和公鑰文件名。
這意味着,如果任何其他應用程序生成了一組新的密鑰,則這些密鑰將被覆蓋。

為了提高ssh設置的健壯性,一種可能的解決方法是:

  • %HOME%\\.ssh重命名密鑰:
  • %HOME%\\.ssh\\config添加私鑰的完整路徑

就像是:

Host git.myhost.lan
  HostName git.myhost.lan
  User git
  IdentityFile C/Users/<yourLogin>/.ssh/git.myhost.lan

然后嘗試ssh -Tv git.myhost.lan (不需要git@

另一個可能的選擇是由於某種原因您的ssh-agent已停止,因此您必須啟動它

如何重新啟動ssh-agent?

// restart ssh agent
eval $(ssh-agent)

// verify that your ssh keys are added to the agent
// if you dont specify key it will use the default keys
ssh-add

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM