Как я могу получить доступ к своему публичному ключу SSH?

611

Я только что сгенерировал свою пару ключей RSA, и я хотел добавить этот ключ в GitHub.

Я пытался cd id_rsa.pubи id_rsa.pub, но не повезло. Как я могу получить доступ к своему публичному ключу SSH?

sscirrus
источник
Возможный дубликат Как мне найти мой отпечаток ключа RSA?
Кенорб
3
@kenorb Вы имеете в виду, что Q является дубликатом этого? Этот вопрос был задан двумя годами ранее. :)
sscirrus
Да, другой, кажется, лучше позиционируется (в зависимости от формулировки и т. Д.), У него больше просмотров и голосов в течение более короткого периода времени, что указывает на его большую популярность. Смотрите: Должен ли я голосовать, чтобы закрыть дубликат вопроса, даже если он намного новее и содержит больше актуальных ответов? После дублирования оба ответа могут быть объединены в один.
Кенорб
6
pbcopy < ~/.ssh/id_rsa.pubработал на меня! Проверьте эту статью GitHub
Коннор Лич

Ответы:

1013

cat ~/.ssh/id_rsa.pub или cat ~/.ssh/id_dsa.pub

Вы можете перечислить все ваши открытые ключи, выполнив:

$ ls ~/.ssh/*.pub

Митч Демпси
источник
9
Даже если я вижу файл в том месте, на которое он ссылается (C: /Users/Me/.ssh/.id_rsa.pub), эти команды выдают ошибку: такого файла или каталога нет. Я делаю это из Git Bash, MyPC ~ / .ssh
sscirrus
2
@sscirrus: В Windows вы можете использовать typeкоманду. Или просто откройте файл .pub в блокноте и вставьте его в github.
Питер Штибраны
Большое спасибо, Питер, за ответ и за редактирование. Сделайте ответ, и я приму :)
sscirrus
3
@sscirrus: прими это ... оно тоже работает (под Unix или Cygwin)
Питер Штибраны
32
в Mac OS X:cat ~/.ssh/id_rsa.pub
karlingen
195

Скопируйте ключ в буфер обмена.

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

Предупреждение: важно точно скопировать ключ без добавления новых строк или пробелов. К счастью, команда pbcopy позволяет легко выполнить эту настройку.

И вы можете вставить его туда, где вам нужно.

Чтобы лучше понять весь процесс, проверьте это: Генерация ключей SSH .

d_d
источник
6
sudo apt-get install xclip -yдля тех пользователей, у которых нет pbcopyработы.
suarsenegger
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'

Если вы получили сообщение: «У агента нет идентификаторов», то ssh-keygenсначала вам нужно сгенерировать свой ключ RSA .

kenorb
источник
1
Это хорошо, если вы заранее не знаете путь к ключу. Это не всегда ~/.ssh/.
rudolfbyker
Пробовал, работает на Mac, Win10 (в git bash) и Ubuntu.
Филипп Хаглунд
Использование ssh-add -Lявляется безусловно лучшим вариантом, поскольку не каждый ключ SSH является ключом RSA, находящимся в ~/.sshпапке. Я предпочитаю использовать мой ключ PGP для аутентификации, поэтому у меня нет ~/.ssh/id_rsa.pubфайла вообще.
Steinybot
30

Если вы используете Windows, используйте следующее, выберите все и скопируйте из окна Блокнота:

notepad ~/.ssh/id_rsa.pub  

Если вы используете OS X, используйте:

pbcopy < ~/.ssh/id_rsa.pub
NSUInteger
источник
17

Вот как я нашел мой на OS X:

  1. Откройте терминал
  2. (Вы находитесь в домашнем каталоге) cd .ssh (скрытый каталог)
  3. pbcopy <id_rsa.pub (это копирует его в буфер обмена)

Если это не сработает, сделайте lsи посмотрите, какие файлы там с .pubрасширением.

отметка
источник
10

После того, как вы сгенерируете свой ключ SSH, вы можете сделать:

cat .ssh/id_rsa.pub |pbcopy

который скопирует ваш ключ SSH в буфер обмена.

Brett
источник
9

На терминале cat ~/.ssh/id_rsa.pub

объяснение

  1. cat - это стандартная утилита Unix, которая читает файлы и печатает вывод
  2. ~ Ваш домашний пользовательский путь
  3. /.ssh - ваш скрытый каталог содержит все ваши сертификаты ssh
  4. id_rsa.pub ИЛИ id_dsa.pub - это открытые ключи RSA (закрытый ключ, расположенный на клиентском компьютере). Например, первичный ключ может быть использован для безопасного клонирования проекта из удаленного репозитория в конечную точку вашего клиента.
avivamg
источник
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

Откройте файл id_dsa.pub или some_name.pub с помощью gedit и скопируйте и вставьте содержимое!

Просто используйте:

~/.ssh$ gedit some_name.pub
sbdv0
источник
Когда я это делаю, он открывает пустой файл. Это не показывает какой-либо текст в нем. Но когда я просматриваю файловый менеджер, я вижу текст.
Iamprem
7

Использование:

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

Затем скопируйте весь файл без пробелов. Щелкните значок в правом верхнем углу страницы GitHub, перейдите в настройки и добавьте ssh.

Вставьте копию в пространство. Он может запросить пароль GitHub. Введите это. Сохранить.

yavorcik
источник
7

Следующая команда сохранит ключ SSH в буфере обмена. Вам нужно только вставить в нужном месте.

cat ~/.ssh/id_rsa.pub | pbcopy
Прабхат Касера
источник
Это мой любимый способ.
iamkeir
5

Его можно найти по этому пути (путь по умолчанию):

/Users/john/.ssh

john ваше имя пользователя Mac

Spydy
источник
5

Если вы используете Windows, команда:

type %userprofile%\.ssh\id_rsa.pub

он должен напечатать ключ (если он у вас есть). Вы должны скопировать весь результат. Если ни один не присутствует, тогда сделайте:

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

Jghayes525
источник
3

Откройте терминал nano ~ / .ssh / id_rsa.pub

Ник Вуд
источник
3

В УБУНТУ +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 + vярлык, чтобы вставить его в другое место.

~/.sshэто тот же путь, что и /Users/macbook-username/.ssh
Вы можете использовать pwdкоманду Печать рабочего каталога: на терминале, чтобы получить путь к текущему каталогу.

Jun711
источник
1

Я использую Git Bash для моей Windows.

$ eval $ (ssh-agent -s) // активирует соединение

  • какой-то вывод

$ ssh-add ~ / .ssh / id_rsa // добавляет идентификатор

  • какой-то другой вывод

$ clip <~ / .ssh / id_rsa.pub // ЭТО ВАЖНО. Это добавит ваш ключ в буфер обмена. Вернитесь в GitHub и просто вставьте его, и вуаля! Тебе должно быть хорошо идти.

JW
источник
0

На Mac / Unix и Windows:

ssh-keygenзатем следуйте инструкциям. Он попросит вас указать имя файла (например, вы называете его pubkey). Сразу у вас должны быть видны отпечаток вашего ключа и случайное изображение ключа.

Затем просто используйте ваш любимый текстовый редактор и введите команду, vim pubkey.pubи она (ваш ключ ssh-rsa) должна быть там.

Замените vim на emacs или любой другой редактор, который вы предпочитаете.

sawreals
источник