如何访问我的SSH公钥?


610

我刚刚生成了RSA密钥对,我想将该密钥添加到GitHub。

我尝试了cd id_rsa.pubid_rsa.pub,但是没有运气。如何访问我的SSH公钥?



3
@kenorb您的意思是Q是这个的重复吗?这个问题是两年前提出的。:)
sscirrus

是的,另一个似乎位置更好(基于措辞等),它在较短的时间内具有更多的视图和投票,这表明它更受欢迎。请参阅:我是否应该投票结束重复的问题,即使它是新问题,并且有更多最新答案?一旦重复,两个答案可以合并为一个。
kenorb 2015年

6
pbcopy < ~/.ssh/id_rsa.pub为我工作!查看此GitHub文章
Connor Leech,

Answers:


1010

cat ~/.ssh/id_rsa.pub 要么 cat ~/.ssh/id_dsa.pub

您可以通过执行以下操作列出所有公共密钥:

$ ls ~/.ssh/*.pub


9
即使我在文件所在的位置(C:/Users/Me/.ssh/.id_rsa.pub)看到文件,这些命令仍会产生错误:没有这样的文件或目录。我正在Git Bash,
MyPC〜

2
@sscirrus:在Windows中,您可以使用type命令。或者只是在记事本中打开.pub文件,然后将其粘贴到github。
PeterŠtibraný10年

非常感谢Peter,感谢您的回答和修改。回答一下,我接受:)
sscirrus

3
@sscirrus:接受这一点……它也可以工作(在Unix或cygwin下)
PeterŠtibraný10年

32
在Mac OS X上:cat ~/.ssh/id_rsa.pub
karlingen 2014年

195

将密钥复制到剪贴板。

$ pbcopy < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard

警告:完全复制密钥而不添加换行符或空格非常重要。幸运的是,使用pbcopy命令可以轻松轻松地完美执行此设置。

您可以将其粘贴到任何需要的地方。

为了更好地了解整个过程,请检查以下内容:生成SSH密钥


6
sudo apt-get install xclip -y对于那些没有pbcopy工作的用户。
suarsenegger '16

4
sudo apt-get install -y xclip其次alias pbcopy="xclip -sel clip"pbcopy < ~/.ssh/id_rsa.pub或者干脆xclip -selection clipboard < ~/.ssh/id_rsa.pub
gebbissimo

47

您可以尝试运行以下命令以显示RSA指纹:

ssh-agent sh -c 'ssh-add; ssh-add -l'

或公钥:

ssh-agent sh -c 'ssh-add; ssh-add -L'

如果您收到消息:“代理没有身份。”,则必须首先生成RSA密钥ssh-keygen


1
当您事先不知道密钥的路径时,这非常有用。并非总是如此~/.ssh/
rudolfbyker

进行了尝试,可在Mac,Win10(在git bash中)和Ubuntu上运行。
Filip Haglund

ssh-add -L到目前为止,使用是更好的选择,因为并非每个SSH密钥都是~/.ssh文件夹中的RSA密钥。我更喜欢使用我的PGP密钥进行身份验证,因此我根本没有~/.ssh/id_rsa.pub文件。
steinybot

30

如果您在Windows上,请使用以下命令,选择全部,然后从“记事本”窗口进行复制:

notepad ~/.ssh/id_rsa.pub  

如果您使用的是OS X,请使用:

pbcopy < ~/.ssh/id_rsa.pub

17

这是我在OS X上找到我的方法:

  1. 打开一个终端
  2. (您在主目录中)cd .ssh(一个隐藏目录)
  3. pbcopy <id_rsa.pub(将其复制到剪贴板)

如果这不起作用,请执行ls并查看其中带有.pub扩展名的文件。


10

生成SSH密钥后,您可以执行以下操作:

cat .ssh/id_rsa.pub |pbcopy

它将ssh密钥复制到剪贴板中。


9

在终端上 cat ~/.ssh/id_rsa.pub

说明

  1. cat是一个标准的Unix实用程序,可读取文件并打印输出
  2. 是您的家庭用户路径
  3. /.ssh-您的隐藏目录包含所有ssh证书
  4. id_rsa.pubid_dsa.pub是RSA公钥(位于客户端计算机上的私钥)。例如,主键可用于启用从远程存储库到您的客户端端点的安全克隆项目。

8

如果使用Windows PowerShell,最简单的方法是:

cat ~/.ssh/id_<key-type-here>.pub | clip

这样会将密钥复制到剪贴板,以便轻松粘贴。

因此,在我的实例中,我使用ed25519,因为RSA现在很容易被黑客入侵:

cat ~/.ssh/id_ed25519.pub | clip

因为我发现自己经常这样做,所以我创建了一个函数并设置了一个我可以在PowerShell配置文件中记住的简单别名(在此处了解有关PowerShell配置文件的更多信息。只需将其添加到您的Microsoft.PowerShell_profile.ps1

function Copy-SSHKey {
    Get-Content ~/.ssh/id_ed25519.pub | clip
}

Set_Alias -Name sshkey -Value Copy-SSHKey

然后,在PowerShell控制台中,运行. $profile以加载功能。然后从现在开始,只需运行sshkey,然后通过剪贴板将密钥粘贴到所需的任何位置。


7

使用gedit打开您的id_dsa.pub或some_name.pub文件,然后复制粘贴内容!

只需使用:

~/.ssh$ gedit some_name.pub

当我这样做时,其打开一个空白文件。它没有显示任何文本。但是当我浏览文件管理器时,我可以看到文本。
iamprem 2015年

7

采用:

# sudo su
# cd /home/user/.ssh
.ssh# gedit id_rsa.pub

然后复制整个文件,没有任何空格。单击GitHub页面右上方的图标,转到设置,然后添加ssh。

将副本粘贴到空间中。它可能会提示您输入GitHub密码。输入它。救。


7

以下命令将SSH密钥保存在剪贴板上。您只需要粘贴在所需的位置。

cat ~/.ssh/id_rsa.pub | pbcopy

这是我最喜欢的方式。
iamkeir

5

可以在以下路径(默认路径)上找到它:

/Users/john/.ssh

john 是您的Mac用户名。


5

如果您使用的是Windows,则命令为:

type %userprofile%\.ssh\id_rsa.pub

它应该打印密钥(如果有)。您应该复制整个结果。如果不存在,请执行以下操作:

ssh-keygen -t rsa -C "your.email@example.com" -b 4096



3

在UBUNTU中+18.04

         ssh-keygen -o -t rsa -b 4096 -C "email@example.com" 

然后复制并粘贴

         cat ~/.ssh/id_rsa.pub 

要么

         cat ~/.ssh/id_dsa.pub

2

在Mac上,您可以执行此操作以将其复制到剪贴板(如cmd + c快捷方式)
cat ~/Desktop/ded.html | pbcopy
pbcopy < ~/.ssh/id_rsa.pub

并粘贴 pbpaste > ~Documents/id_rsa.txt

或者,使用cmd + vshorcut将其粘贴到其他位置。

~/.ssh/Users/macbook-username/.ssh
您可以pwd在终端上使用“打印工作目录:” 命令获取当前目录的路径相同。


1

我在Windows上使用Git Bash。

$ eval $(ssh-agent -s)//激活连接

  • 一些输出

$ ssh-add〜/ .ssh / id_rsa //添加身份

  • 其他一些输出

$ clip <〜/ .ssh / id_rsa.pub //这是重要的一个。这会将您的密钥添加到剪贴板。返回GitHub并将其粘贴,然后贴吧!你应该很好。


0

在Mac / unix和Windows上:

ssh-keygen然后按照提示进行操作。它将询问您文件的名称(例如,您称它为pubkey)。立即,您应该可以看到密钥指纹和密钥的randomart图像。

然后,只需使用您喜欢的文本编辑器并输入命令vim pubkey.pub,它(您的ssh-rsa密钥)就应该存在。

用emacs或您拥有/喜欢的任何其他编辑器替换vim。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.