我已根据此处概述的过程为新服务器安装生成了SSH密钥。但是,当我将的内容复制id_rsa.pub
到GitHub上的密钥列表时,收到错误消息“密钥无效。请确保您已正确复制了文件”。
生成的密钥是有效的,我完全照原样复制了它(全部在一行中,开头/结尾没有空格)。
有人知道会发生什么吗?
Answers:
我来这里是因为我有同样的问题。从你的问题,我意识到,我是复制从错误的文件中的内容,而无需将.pub
扩展(这是我的私人密钥,即id_rsa
文件,它应该在任何时候都保密!)
从MAC:
vi ~/.ssh/id_rsa.pub
完全从字符块的末尾(用电子邮件域扩展名的最后一个字母)复制到以ssh-rs开头的开头...
如果它不起作用,则您肯定无法正确复制。
有效。
如果您使用的是Windows,请使用记事本和复制粘贴,如上所述。
希望对您有所帮助。
vi
做到了这一点,我使用了nano,该文件被截断了$
符号
复制/粘贴您的公钥时,有些步骤根本不清楚。(出于记录目的,我使用Putty Key Generator作为我的密钥。)
请注意,在此屏幕截图中,ssh-rsa后有一个空格(请参见光标。)公钥文本还包含三个\ n字符,因此您可以在文本框中看到公钥文本向下跳到下一行三遍。
ssh-rsa
和由不包括新行字符。
我尝试了几种方法,但是它们都没有帮助(我的操作系统是ubuntu)。然后,我想是否可以使用命令“更多”来打印〜/ .ssh / id_rsa.pub的内容。
对不起,我没有发布图片的声誉!当我有的时候,我会发布它!
这是一个您可以在其中看到图片的网址:
我从命令行复制了内容,并且成功了!!!
我知道这是现在cpl岁的问题,但是如果有人在2018年遇到此问题:
那么下面就不用说了:
我的问题是我尝试复制私钥
id_rsa
代替公钥内容
id_rsa。酒馆
作为我的SSH gitlab存储库密钥,因此在您之后:
ssh-keygen -t rsa -C "your@email.com" -b 4096
请记住要复制的.pub文件扩展名:
pbcopy <〜/ .ssh / id_rsa。酒馆
xclip -sel剪辑<〜/ .ssh / id_rsa。酒馆
猫〜/ .ssh / id_rsa。酒吧| 夹
这很合情合理,因为您应该始终只共享您的公共密钥,而不是私有密钥:)
对于将来的人来说,另一个普遍的问题是自动换行。例如,如果您运行cat ~/.ssh/id_rsa.pub
它,可以换行,从而\
在每个换行符处添加额外的字符。删除这些,您的密钥应该可以正常工作。
如果确实复制了id_rsa.pub
密钥的内容(连续一行),则结果应如下所示(来自GitHub ssh帮助页面):
- 由于一个非常模糊的原因,从emacs进行复制粘贴会删除
\n
after ssh-rsa,这就是造成此问题的原因。- 从vi复制粘贴解决了这个问题。
尽管cat
直接从终端(Cmder / ConEmu)的输出中复制了公钥,但我遇到了同样的问题。似乎您用来复制公钥的方法似乎有所不同。这是一种检查方法:
$ ssh-keygen -l -f ~/.ssh/id_rsa.pub
4096 SHA256:...
然后将失败的密钥粘贴到新文件中,并尝试验证以下内容:
$ ssh-keygen -l -f test.pub
test.pub is not a public key file.
就我而言,我一直在使用终端从终端输出中复制密钥cat
;而是从vim
工作中获取密钥。这是在启用自动换行的情况下在vim中打开密钥的方法:
$ vim "+set wrap" ~/.ssh/id_rsa.pub
我怀疑终端仿真器可能与它有关,因为我没有Terminal.app这个问题。
如果您使用Sublime,则可以正确看到ssh-key。检查是否有id_rsa.pub
ls -al ~/.ssh
如果安装到位,请使用精美的文字打开
sudo subl /home/user_name/.ssh/id_rsa.pub
然后复制并粘贴您的公共ssh密钥。
我刚遇到这个问题。超级令人沮丧。我认为我的情况可能会影响问题的根源。我正在使用平板电脑,尝试通过平板电脑浏览器(Chrome)在githubs站点上设置密钥,然后从连接到远程linux服务器的ssh应用程序复制密钥。
最终发生的事情是,当我以某种方式将密钥复制到浏览器时,它引入了许多换行符。不仅如此,它还从插入新行的每个点删除了一个字符。
因此,要使其正常工作,我必须手动找到每个新的换行符,然后寻找关键部分以查找丢失的字符。然后,我添加了字符并删除了新行。在我找出所有零钱后,钥匙工作正常。
顺便说一下,我没有添加任何新的换行符,例如ssh-rsa之后其他人提到的换行符。
希望这对其他人有帮助。我不知道为什么会这样。愚蠢的是,复制到剪贴板会改变复制的文本。哦,我也直接从Vim复制了它。
如果使用vs代码
code ~/.ssh/id_rsa.pub
将打开.pub
文件将其复制到github
我试图上传我的公共密钥并收到“无效密钥”消息。我的格式不正确,因为密钥末尾有多余的空格。应采用以下格式:ssh-rsa <public-key>
ssh-rsa
了密钥本身之前的,是吗?