2014-09-21 2304 views
1

我将Git配置为与Assembla的远程存储库一起使用,但我认为同一个工作流程用于任何远程存储库,所以我的问题必须具有简单的通用回答。为Git配置SSH - 在创建密钥后找不到id_rsa.pub

继文档:

在Windows中,密钥对将出现在C:\用户\默认名称\的.ssh。在Mac和Linux中,它将位于〜/ .ssh的隐藏目录中。

我在Windows上,所以我在我的用户文件夹看了看,没有.ssh文件夹中(请注意,我用/ah包括隐藏文件):

C:\Users\Victor>dir /ah 
Volume in drive C has no label. 
Volume Serial Number is XXXX-XXXX 

Directory of C:\Users\Victor 

09/19/2014 06:20 PM <DIR>   AppData 
09/19/2014 06:20 PM <JUNCTION>  Application Data [C:\Users\Victor\AppData 
09/19/2014 06:20 PM <JUNCTION>  Cookies [C:\Users\Victor\AppData\Roaming\ 
09/19/2014 06:20 PM <JUNCTION>  Local Settings [C:\Users\Victor\AppData\L 
09/19/2014 06:20 PM <JUNCTION>  My Documents [C:\Users\Victor\Documents] 
09/19/2014 06:20 PM <JUNCTION>  NetHood [C:\Users\Victor\AppData\Roaming\ 
09/21/2014 06:39 PM   786,432 NTUSER.DAT 
09/21/2014 06:39 PM   262,144 ntuser.dat.LOG1 
09/19/2014 06:20 PM     0 ntuser.dat.LOG2 
09/19/2014 06:22 PM   65,536 NTUSER.DAT{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx 
09/19/2014 06:22 PM   524,288 NTUSER.DAT{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx 
09/19/2014 06:22 PM   524,288 NTUSER.DAT{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx 
09/19/2014 06:20 PM    20 ntuser.ini 
09/19/2014 06:20 PM <JUNCTION>  PrintHood [C:\Users\Victor\AppData\Roamin 
09/19/2014 06:20 PM <JUNCTION>  Recent [C:\Users\Victor\AppData\Roaming\M 
09/19/2014 06:20 PM <JUNCTION>  SendTo [C:\Users\Victor\AppData\Roaming\M 
09/19/2014 06:20 PM <JUNCTION>  Start Menu [C:\Users\Victor\AppData\Roami 
09/19/2014 06:20 PM <JUNCTION>  Templates [C:\Users\Victor\AppData\Roamin 

当我试图重新关键,它说一个已经存在。

C:\Program Files (x86)\Git\bin>ssh-keygen -t rsa -C "[email protected]" 
Generating public/private rsa key pair. 
Enter file in which to save the key (//.ssh/id_rsa): neolisk 
neolisk already exists. 
Overwrite (y/n)? n 

那么它在哪里呢?作为一个方面说明,这个必须生成密钥的整个概念对我来说是新的,因为我来自SVN世界,其中身份验证是透明的,除了输入用户名和密码外,不需要客户端配置。如果有一个选项可以在没有密钥的情况下配置Git,我希望你能分享如何去做。

这可能与我的问题没有关系,但为了保持软件开发的环境,我使用的是Visual Studio 2008的Git Source Control provider from Codeplexgit extensions。我没有找到在IDE内设置的方法,这就是我在这里玩命令行的原因。本地提交工作正常,当我决定与远程连接时出现。如果在IDE中配置它,请分享您的想法。

+0

从混帐bash的尝试提示,而不是Windows命令提示符 – 2014-09-21 23:56:33

+0

@AndrewC:我试过了,它创建了另一个(由于某种原因没有提供覆盖),但.ssh文件夹仍然不存在。当我第二次尝试时,如果提供覆盖,和以前一样。可能是32位/ 64位问题。无论如何,同样的问题。 – Neolisk 2014-09-22 01:50:46

+0

当你使用git bash的时候,它在“Enter file in which ..”提示中有/ user/YOURNAME /,还是仍然是“//.ssh” – 2014-09-22 01:53:07

回答

1

首先,确保环境变量HOME定义为C:\用户\维克多

其次,当你看到Enter file in which to save the key (/C/Users.Victor/.ssh/id_rsa):,只需点击回报,它会创建正确的文件。

我更喜欢在cmd会话中使用Git,启动后git-cmd.bat,它确实设置HOME正确。

+0

+1并接受。完美工作。设置HOME,不提供名称。谢谢! – Neolisk 2014-09-23 23:25:28

0

对于完整性,(GIT bash或命令提示符中运行时相同的结果),这里是ssh-keygen命令的成功运行的输出日志:

Generating public/private rsa key pair. 
Enter file in which to save the key (/c/Users/Victor/.ssh/id_rsa): 
/c/Users/Victor/.ssh/id_rsa already exists. 
Overwrite (y/n)? y 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /c/Users/Victor/.ssh/id_rsa. 
Your public key has been saved in /c/Users/Victor/.ssh/id_rsa.pub. 
The key fingerprint is: 
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx [email protected] 
+1

良好的反馈意见(和我的答案很好的例证)。 +1 – VonC 2014-09-24 05:27:21

相关问题