保存ssh密钥失败

时间:2011-09-15 11:50:32

标签: git github ssh-keys

我刚刚开始了一个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).

14 个答案:

答案 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来创建密钥

  1. 使用Putty Gen生成密钥
  2. 将密钥导出为打开的SSH密钥
  3. 如@VonC所述,创建.ssh目录然后你可以删除私钥和公钥
  4. 或使用GUI程序(如Tortoise Git)来使用SSH密钥
  5. 有关上述步骤的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键。

在这里https://help.github.com/en/enterprise/2.16/user/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

检查

答案 8 :(得分:0)

我在git附带的windows上使用了bash。问题是我假设我用来表示我的家庭路径正确扩展的波浪号(〜)。它在使用cd时确实有效,但要修复此错误,我必须给它一个绝对路径。

答案 9 :(得分:0)

您的方法在Mac上应该可以正常运行,但是在Windows上,还需要执行两个附加步骤。

  1. 在所需位置创建一个新文件夹,并将其命名为“ .ssh”。 (请注意,结束点将消失,但是创建以“。”开头的文件夹是必需的。)
  2. 出现提示时,使用文件路径格式C:/Users/NAME/.ssh/id_rsa(请注意,.ssh上没有结束点)。

将id_rsa密钥保存在此位置应该可以解决权限错误。

答案 10 :(得分:0)

我遇到了同样的问题。 Windows解决方案:

  1. 打开开始菜单,然后输入cmd
  2. 右键并选择以管理员身份运行
  3. 然后键入cd Users_YOURUSERNAME_ \ 将“ YOURUSERNAME ”替换为Windows帐户名
  4. 类型: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): 输入密码(为空,无密码): 再次输入相同的密码:

它为我工作...