我刚刚开始了一个Git教程,我得到了一个deadend:我尝试生成一个rsa关键部分,但它失败了。 我用git bash做了这个:
ssh-keygen -t rsa -C "myemail@myemail.com"
我得到了这个:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Eva/.ssh/id_rsa):
enter passphrase:
enter same passphrase again:
open /c/Users/Eva/.ssh/id_rsa failed: no such file or directory.
Saving the key failed:/c/Users/Eva/.ssh/id_rsa.
我试图保存在另一个文件夹中,然后就可以了。但现在我执行命令ssh -T git@github.com
,它给了我错误permisson denied (publickey).
答案 0 :(得分:25)
如果您使用的是Windows,则ssh-keygen的unix样式默认路径出错。
在第2行中,它显示Enter file in which to save the key (/c/Users/Eva/.ssh/id_rsa):
。
parantheses中的完整文件名是默认的,显然Windows无法访问这样的文件。如果您键入Windows等效项(c:\Users\Eva\.ssh\id_rsa
),它应该可以正常工作。
c:\Users\Administrator\.ssh>ssh-keygen -t rsa -C "myemail@myemail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/Administrator/.ssh/id_rsa): C:\Users\Administrator\.ssh\id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Administrator\.ssh\id_rsa.
Your public key has been saved in C:\Users\Administrator\.ssh\id_rsa.pub.
The key fingerprint is:
... myemail@myemail.com
The key's randomart image is:...`
我知道这是一个老话题,但我认为答案可能有助于其他人。
答案 1 :(得分:12)
如果您更喜欢使用GUI来创建密钥
有关上述步骤的putty gen演练,请参阅http://ask-leo.com/how_do_i_create_and_use_public_keys_with_ssh.html
答案 2 :(得分:10)
看起来您正在从DOS会话执行该命令(请参阅this thread),这意味着您需要在所述命令之前创建.ssh
目录。
或者你可以从bash会话(msysgit发行版的一部分)执行它,它应该可以工作。
答案 3 :(得分:8)
我有同样的问题。我必须使用Windows约定提供完整路径。 在这一步:
Enter file in which to save the key (/c/Users/Eva/.ssh/id_rsa):
提供以下值:
c:\users\eva\.ssh\id_rsa
答案 4 :(得分:3)
您必须自己创建.ssh文件夹才能保存ssh密钥。
顺便说一下,我使用了这种路径样式:C:/Users/you/.ssh/id_rsa
答案 5 :(得分:1)
在Windows中,我必须创建环境变量HOME
,指向我的用户个人资料(C:\Users\<name>)
或您喜欢的任何目录。
然后启动一个新的命令行窗口,在用户配置文件中创建一个.ssh
目录,或者使用mkdir ".ssh"
命令选择一个目录。
在这之后我能够使用ssh-keygen而没有任何路径问题。
答案 6 :(得分:1)
我刚才用同样的问题挣扎了一段时间(使用Mac)。这就是我所做的,终于奏效了:
(1)确认.ssh目录存在:
#show all files including hidden
ls -a
(2)通过接受所有默认值在提示符下按Enter键
Enter file in which to save the key (/Users/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
你应该收到一条消息:
Your identification has been saved in /Users/username/.ssh/id_rsa.
Your public key has been saved in /Users/username/.ssh/id_rsa.pub.
The key fingerprint is:
BZA156:HVhsjsdhfdkjfdfhdX+BundfOytLezXvbx831/s youremail.@email.com
The key's randomart image is:XXXXX
PS如果要为rails配置git,请执行以下操作(source):
git config --global color.ui true
git config --global user.name "yourusername"
git config --global user.email "youremail@email.com"
ssh-keygen -t rsa -C "youremail@email.com"
(然后按Enter键接受所有默认值)
答案 7 :(得分:1)
对于MacOS
打开终端 并确保您具有.ssh目录。
在主目录(〜)文件夹中,输入ls -hal
,您将看到所有隐藏目录,并确保您拥有.ssh目录,如果没有,请确保mkdir .ssh
然后输入此ssh-keygen -t rsa -C "myemail@myemail.com"
然后您有:Generating public/private rsa key pair.
Enter file in which to save the key (/Users/YOURUSERNAME/.ssh/id_rsa):
按Enter键(如果您同意该路径,则不需要输入任何内容,或者您需要从卷的根目录输入路径)
然后按照答案回答,按Enter键。
检查答案 8 :(得分:0)
我在git附带的windows上使用了bash。问题是我假设我用来表示我的家庭路径正确扩展的波浪号(〜)。它在使用cd时确实有效,但要修复此错误,我必须给它一个绝对路径。
答案 9 :(得分:0)
您的方法在Mac上应该可以正常运行,但是在Windows上,还需要执行两个附加步骤。
将id_rsa密钥保存在此位置应该可以解决权限错误。
答案 10 :(得分:0)
我遇到了同样的问题。 Windows解决方案:
mkdir .ssh
这将创建一个.ssh文件夹。
答案 11 :(得分:0)
在使用CMDER的Windows 8.1上,我使用此文件路径/c/Users/youruser/.ssh/id_rsa_ww创建了ssh密钥,但问题出在:我正在使用。使用此路径,我在运行命令之前没有创建文件夹,因此无需运行mkdir,因为该命令将自动创建文件夹。
答案 12 :(得分:0)
对于Linux 在终端上使用:
ssh-keygen -t ed25519 -C "<comment>"
这将生成新的建模密钥。或者可以创建为:
ssh-keygen -t rsa -b 2048 -C "any comment"
然后继续下面的终端..根据要求给文件命名 再次输入空密码短语..并继续
然后转到/home/user/.ssh/id_ed25519或/home/user/.ssh/id_rsa(是隐藏文件。通过执行ctrl + h取消隐藏文件来查找)并将其复制到gitlab => profile =>设置=> ssh =>通过粘贴复制的密钥在此处创建新密钥,并注意:公钥始终以ssh开头。 请享用! 帮助:gitlab-Help
答案 13 :(得分:0)
对于Windows使用3次输入按钮
输入要在其中保存密钥的文件(/c/Users/Rupesh/.ssh/id_rsa): 输入密码(为空,无密码): 再次输入相同的密码:
它为我工作...