繁体   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