ChatGPT解决这个技术问题 Extra ChatGPT

如何访问我的 SSH 公钥?

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

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

@kenorb您的意思是Q是这个的副本?这个问题是两年前提出的。 :)
是的,另一个似乎更好的定位(基于措辞等),它在更短的时间内有更多的观点和投票,这表明它更受欢迎。请参阅:Should I vote to close a duplicate question, even though it's much newer, and has more up to date answers? 一旦重复,两个答案可以合并为一个。
pbcopy < ~/.ssh/id_rsa.pub 为我工作!检查此GitHub article

M
Mitch Dempsey

cat ~/.ssh/id_rsa.pubcat ~/.ssh/id_dsa.pub

您可以通过以下方式列出您拥有的所有公钥:

$ ls ~/.ssh/*.pub


即使我在它所指的位置(C:/Users/Me/.ssh/.id_rsa.pub)看到该文件,这些命令也会产生错误:没有这样的文件或目录。我正在从 Git Bash、MyPC ~/.ssh 执行此操作
@sscirrus:在 Windows 中,您可以使用 type 命令。或者只是在记事本中打开 .pub 文件并将其粘贴到 github。
非常感谢彼得的回答和编辑。让它成为答案,我会接受:)
@sscirrus:接受这个……它也可以(在 unix 或 cygwin 下)
在 Mac OS X 上:cat ~/.ssh/id_rsa.pub
D
DD_

将密钥复制到剪贴板。

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

警告:在不添加换行符或空格的情况下准确复制密钥很重要。值得庆幸的是 pbcopy 命令可以轻松完美地执行此设置。

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

有关该过程的更多详细信息,请查看:Generating SSH Keys


sudo apt-get install xclip -y 适用于没有 pbcopy 工作的用户。
sudo apt-get install -y xclip 后跟 alias pbcopy="xclip -sel clip" 然后 pbcopy < ~/.ssh/id_rsa.pub 或简单地 xclip -selection clipboard < ~/.ssh/id_rsa.pub
k
kenorb

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

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

或公钥:

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

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


当您事先不知道密钥的路径时,这很有用。它并不总是在 ~/.ssh/ 中。
试了一下,适用于 Mac、Win10(在 git bash 中)和 Ubuntu。
到目前为止,使用 ssh-add -L 是更好的选择,因为并非每个 SSH 密钥都是位于 ~/.ssh 文件夹中的 RSA 密钥。我更喜欢使用我的 PGP 密钥进行身份验证,因此我根本没有 ~/.ssh/id_rsa.pub 文件。
P
Peter Mortensen

如果您使用的是 Windows,请使用以下内容,全选,然后从记事本窗口复制:

notepad ~/.ssh/id_rsa.pub  

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

pbcopy < ~/.ssh/id_rsa.pub

T
Tellisense

Mac、Ubuntu、Linux 兼容机器,使用此命令打印公钥,然后复制:

$ cat ~/.ssh/id_rsa.pub

P
Peter Mortensen

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

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

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


a
avivamg

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

解释

cat 是一个标准的 Unix 实用程序,可以读取文件并打印输出 ~ 是您的主用户路径 /.ssh - 您的隐藏目录包含您的所有 ssh 证书 id_rsa.pub 或 id_dsa.pub 是 RSA 公钥,(位于客户端的私钥机器)。例如,主键可用于将项目从远程存储库安全地克隆到您的客户端。


B
Brett

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

cat .ssh/id_rsa.pub |pbcopy

这会将您的 ssh 密钥复制到剪贴板中。


J
Jghayes525

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

键入 %userprofile%\.ssh\id_rsa.pub

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

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


P
Peter Mortensen

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

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

这会将密钥复制到剪贴板以便于粘贴。

所以,在我的例子中,我使用 ed25519 因为 RSA 现在相当容易破解:

cat ~/.ssh/id_ed25519.pub | clip

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

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

Set_Alias -Name sshkey -Value Copy-SSHKey

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


P
Peter Mortensen

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

只需使用:

~/.ssh$ gedit some_name.pub

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

利用:

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

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

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


P
Peter Mortensen

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

cat ~/.ssh/id_rsa.pub | pbcopy

这是我最喜欢的方式。
K
Kontrollfreak

如果您只有私钥可用,则可以从中生成公钥:

ssh-keygen -y

或者

ssh-keygen -y -f path/to/private_key

P
Peter Mortensen

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

/Users/john/.ssh

john 是您的 Mac 用户名。


S
Shabeer K

在 UBUNTU +18.04

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

之后只需复制和粘贴

         cat ~/.ssh/id_rsa.pub 

或者

         cat ~/.ssh/id_dsa.pub

N
Nick Wood

打开终端 nano ~/.ssh/id_rsa.pub


J
JOduMonT

只是为了给这个问题一个新的视角,如果您使用 github,您可以在以下位置找到您的公钥:https://github.com/${USERNAME}.keys


J
Jun711

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

并粘贴 pbpaste > ~Documents/id_rsa.txt

或者,使用 cmd + v 快捷方式将其粘贴到其他位置。

~/.ssh/Users/macbook-username/.ssh 的路径相同
您可以在终端上使用 Print work directory: pwd 命令获取当前目录的路径。


J
J.W

我在 Windows 上使用 Git Bash。

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

一些输出

ssh-add ~/.ssh/id_rsa //添加身份

其他一些输出

clip < ~/.ssh/id_rsa.pub //这是最重要的。这会将您的密钥添加到剪贴板。回到 GitHub 并将其粘贴进去,瞧!你应该很高兴。


s
sawreals

在 Mac/unix 和 Windows 上:

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

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

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


即使我在终端或查找器上找不到文件,使用文本编辑器打开文件也可以...谢谢
M
Matin Onegh

id_rsa.pub 不是目录,因此您不能使用 cd 打开它。

相反,您可以使用命令 cd ~/.ssh 访问包含您的密钥的文件夹,然后使用 cat id_rsa.pubnano id_rsa.pubgedit id_rsa.pub 访问密钥文件。


m
manero

ssh-add 用于显示公钥。

man ssh-add

-L  Lists public key parameters of all identities currently repre‐
    sented by the agent.

在我的 Linux 系统上,我使用 xclip 复制它

ssh-add -L | xclip

嗨manero :) 欢迎!已经有许多关于 ssh-add 用法的答案,您能否提供更多细节以使您的答案更加独特?否则它可能会被标记为重复的答案(这不是一件坏事,只是 stackoverflow 中的一个整理过程)。话虽如此,我建议您检查所有现有答案,以了解您将来的想法是否有任何重叠。 StackOverflowing 快乐!