Перейти к содержимому

Как сгенерировать ssh ключ

  • автор:

Что такое SSH-ключ в Git?

SSH-ключ — это учетные данные для доступа по сетевому протоколу Secure Shell (SSH). С помощью этого аутентифицированного и зашифрованного безопасного сетевого протокола обеспечивается удаленная связь между машинами, находящимися в незащищенной открытой сети. Протокол SSH используется для удаленной передачи файлов, управления сетью и удаленного доступа к операционной системе. Кроме того, аббревиатурой SSH описывают набор инструментов, используемых для взаимодействия по протоколу SSH.

SSH использует пару ключей, чтобы инициировать безопасное квитирование установления связи между удаленными сторонами. Пара состоит из открытого и закрытого ключей. Эти названия могут сбить с толку, поскольку оба элемента называются ключами. Лучше рассматривать открытый ключ как «замок», а закрытый ключ — как «ключ». Вы выдаете удаленным сторонам «замок» для шифрования или «запирания» данных. Затем эти данные открываются с помощью закрытого ключа, который вы храните в надежном месте.

Создание SSH-ключа

SSH-ключи генерируются с помощью криптографических алгоритмов с открытым ключом (чаще всего имеют в виду RSA и DSA). Если говорить в общих чертах, SSH-ключи генерируются с помощью математической формулы, которая содержит два простых числа и случайную начальную переменную для вывода открытого и закрытого ключей. С помощью этой односторонней формулы можно получить открытый ключ из закрытого, но не наоборот.

Создать SSH-ключи можно с помощью инструмента генерации ключей. В набор инструментов командной строки SSH входит утилита keygen. Кроме того, большинство хостинг-провайдеров git предлагают руководства по созданию SSH-ключа.

Создание SSH-ключа на Mac и Linux

В операционных системах OS X и Linux доступны комплексные современные приложения-терминалы, которые поставляются с предустановленным набором инструментов SSH. Создание SSH-ключа проходит одинаково в обеих операционных системах.

1. Чтобы начать создание ключа, выполните следующую команду.

Эта команда создаст новый SSH-ключ, используя адрес электронной почты в качестве метки.

2. Затем вам будет предложено указать файл, где будет сохранен ключ.
Укажите расположение файла или нажмите клавишу «Ввод», чтобы принять расположение по умолчанию.

3. Далее вас попросят ввести секретную фразу.
Она добавит еще один уровень безопасности к SSH и будет требоваться при каждом использовании ключа SSH. Если злоумышленник получит доступ к компьютеру, на котором хранятся закрытые ключи, он также сможет получить доступ к любым системам, использующим эти ключи. Секретная фраза защитит от этого сценария.

На этом этапе новый SSH-ключ будет создан в файле, местоположение которого было указано ранее.

4. Добавьте новый SSH-ключ в ssh-agent.

ssh-agent — это еще одна программа, входящая в набор инструментов SSH. В ней хранятся закрытые ключи, поэтому ее можно рассматривать как брелок. Кроме того, она обрабатывает запросы на подпись SSH-запросов с помощью закрытых ключей, чтобы такие ключи всегда передавались безопасно.

Перед добавлением нового SSH-ключа в ssh-agent убедитесь, что программа запущена выполнив следующую команду:

После запуска ssh-agent добавьте новый SSH-ключ в локальный агент SSH с помощью следующей команды.

Теперь новый SSH-ключ зарегистрирован и готов к использованию.

Создание SSH-ключа в Windows

В средах Windows нет стандартной unix-оболочки, поэтому для полноценной работы с инструментом keygen вам потребуется установить сторонние программы оболочки. Самый простой вариант для этих целей — решение Git Bash. После его установки вы сможете выполнять в оболочке Git Bash те же действия, что в Linux и Mac.

Подсистема Linux для Windows

Современные среды Windows предлагают подсистему Linux для Windows с полноценной оболочкой. Если вам доступна эта подсистема, вы можете выполнить в ней те же шаги, которые были описаны выше для Linux и Mac.

Резюме

SSH-ключи позволяют аутентифицировать безопасные соединения. Следуя этому руководству, вы сможете создать SSH-ключ и начать им пользоваться. В системе Git можно применять SSH-ключи вместо традиционной аутентификации по паролю при отправке или передаче данных в удаленные репозитории. Современные решения для размещения Git, такие как Bitbucket, поддерживают аутентификацию по SSH-ключу.

Как сгенерировать ssh ключ

Ключ SSH — это криптографический безопасный идентификатор. Это похоже на действительно длинный пароль, используемый для идентификации вашей машины. GitHub использует ключи SSH, чтобы вы могли загружать файлы в репозиторий без необходимости каждый раз вводить свое имя пользователя и пароль.

Во-первых, нам нужно проверить, установлен ли у вас уже SSH-ключ. Введите это в терминал:

Если в консоли появляется сообщение с текстом «Нет такого файла или каталога», значит, у вас еще нет SSH-ключа, и вам нужно будет его создать. Если в выводе консоли не появилось никакого сообщения, значит, у вас уже есть ключ.

Чтобы создать новый ключ SSH, выполните следующую команду в своем терминале. Используйте программу ssh-keygen с флагом -C , за которым следует ваш адрес электронной почты, для чего введите:

Вместо email ,пишем свой,который указали на GitHub.

Когда он запросит место для сохранения сгенерированного ключа, просто нажмите Enter . Затем он попросит вас ввести пароль; введите один, если хотите, но это не обязательно.

Добавление созданных SSH-ключей в SSH-агент

Убедимся что SSH-агент включён:

Запускаем агента, он работает в фоновном режиме. В консоли должен появиться id запущенного процесса.

Пример (у вас он будет свой)

Добавим SSH-ключ в SSH-агент.

Если вы хотите использовать уже существующие ключи, вместо только что сгенерированных, тогда нужно заменить id_rsa при вводе команды в консоли именем существующего файла, содержащий приватный ключ.

В случаем использования только что созданных ключей просто вводим в консоль Git команду:

Результат который получите (у вас будет свой)

А теперь вам нужно сообщить GitHub, какой у вас SSH-ключ, чтобы вы могли отправлять свой код, не вводя каждый раз пароль.

Сначала вы перейдете туда, где GitHub получает наш SSH-ключ. Войдите в GitHub и щелкните изображение своего профиля в правом верхнем углу. Затем нажмите на Settings в раскрывающемся меню.

Затем с левой стороны нажмите SSH and GPG keys . Затем нажмите зеленую кнопку в правом верхнем углу с надписью New SSH Key . Назовите свой ключ так, чтобы вы могли запомнить, откуда он взялся. Оставьте это окно открытым, пока вы будете делать следующие шаги.

Теперь вам нужно скопировать свой публичный SSH-ключ. Для этого мы воспользуемся командой под названием cat чтобы прочитать файл в консоли. (Обратите внимание, что .pub в этом случае важно расширение файла.)

Выделите и скопируйте результат, который начинается с ssh-rsa и заканчивается вашим адресом электронной почты.

Примечание:

Если у вас будет ошибка, то этот ключ можно найти на вашем локальном компьютере.

Перейдите в папку (У меня папка на диске С, в которой лежит папка « .ssh » и называется volko )

Откройте в любом текстовом редакторе, скопируйте ключ и добавьте на сайте.

Теперь вернитесь на GitHub в окне браузера и вставьте ключ, который вы скопировали, в поле ключа. Затем щелкните Add SSH key . Готово! Вы успешно добавили свой SSH-ключ!

Следуйте инструкциям, чтобы проверить свое SSH-соединение (не забудьте пропустить $ при копировании и вставке кода!)

Генерация SSH-ключей

Рассмотрим создание SSH-ключей в Linux и Windows для подключения к серверу под управлением ОС Linux.

Использование SSH-ключей не только позволяет подключаться к серверу без пароля, но и повышает уровень безопасности сервера. Причина проста — пароль можно подобрать, а вот на подбор ключа могут уйти десятилетия. Ключ состоит из двух частей — открытой и закрытой. Именно открытый ключ передается на сервер, а закрытый ключ остается на ПК клиента. Если вы опасаетесь за безопасность ключа, его можно защитить парольной фразой при генерации.

Создание ключей выполняется командой

ssh-keygen -t rsa

На что стоит обратить внимание.

OpenSSH поддерживает генерацию нескольких типов ключей:

  • dsa
  • ecdsa
  • ed25519
  • rsa
  • rsa1

Последнее время, надежность DSA-ключей ставится под сомнение и рекомендуют использовать RSA-ключи.

Если отсутствует каталог “.ssh” в каталоге вашей учетной записи (это скрытый каталог), то он будет создан. Так было не всегда и возможно его придется создать вручную. passphrase — парольная фраза для защиты ключа. Если не желаете её задавать, тогда просто нажимаете Enter. Далее вводится подтверждение этой фразы, либо также Enter. В результате выполнения команды, будет показан слепок ключа и его псевдографическое изображение. Открытый ключ располагается по пути /home/administrator/.ssh/id_rsa.pub. Закрытый — /home/administrator/.ssh/id_rsa.

Рассмотрим создание ключа через утилиту PuTTY-Gen.

Скачаем ее с официального сайта, выбрав соответствующую разрядность своей операционной системы (не серверной).

Выбор разрядности операционной системы

Скриншот №1. Выбор разрядности операционной системы

Запуск программы

Скриншот №2. Запуск программы

В открывшемся окне проверяем значение переключателя “Type of key to generate”, должно быть RSA, кликаем по кнопке Generate.

В обновленном окне программа нас просит выполнять случайные движения мышью в пустом поле программы. Таким образом программа получит случайные данные и создаст ключи.

Создание ключей

Скриншот №3. Создание ключей

Должен получиться примерно такой результат:

Сгенерированный ключ

Скриншот №4. Сгенерированный ключ

Копируем текст открытого ключа из поля “Public key for pasting into OpenSSH authorized_keys file:” временно в любой текстовый файл. Сохраняем закрытый ключ нажав соответствующую кнопку. При необходимости указываем парольную фразу.

Открытый ключ должен начинаться с ssh-rsa.

Добавление ключа.

Для успешного подключения к серверу следует прописать полученный открытый ключ в файл authorized_keys расположенном на сервере по пути:

В данном случае, имя пользователя administrator.

В *nix-подобный операционных системах экспорт открытого ключа на сервер выполняется командой:

/.ssh/id_dsa.pub | ssh -l remonet_user_name 10.10.0.1 «cat >> .ssh/authorized_keys»

remote_user_name — имя пользователя на удаленном сервере, под которым и будет происходить дальнейшее подключение.

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

How to generate ssh keys (for github)

Question: How do I generate ssh private and public keys (to be used in GitHub/GitLab) using command line.

The command below generates the error

I am using Windows XP.

6 Answers 6

The command to run is only

All the rest beginning with line 2 of your script is the output of ssh-keygen.

And replace you@example.com with your email address.

Have a look at the manual for ssh-keygen to look for additional options. You should probably use a longer key by adding -b 4096 to the option list.

Here is the command

This will generate a key for you. You have to copy that and insert into your Github’s account (just one time).

Hazarapet Tunanyan's user avatar

Step 1: Generate Your SSH Key

Step 2: Use the Key

Then add the key we just generated. If you selected a different path than the default, be sure to replace that path in the command.

Step 3: Add the SSH Key on GitHub

if clip not found then add the next command

Finally Result something like on your cmd

copy from your cmd and go to your GitHub account setting find ssh and gpg keys

Naved Khan's user avatar

Generate SSH key using below command

just hit enter to apply the default value for all the inputs it asks

the output will be

just use the cat command to log the ssh key file contents on the terminal(use your own path here).

the output will be

ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx user@xyz.com

copy the contents and go to your github account go to settings under Account settings>SSH and GPG keys click on New SSH key , provide the name you wish and paste the copied contents in the value and save. that’s it you are ready to commit your changes without using username, password every time.

Just apply two commands :

ssh-keygen -t rsa -b 4096

Copy ssh key and paste on browser

Majedul Islam's user avatar

Solution: ssh-keygen -t rsa

Explanation : ssh-keygen is a tool for creating new authentication key pairs for SSH. Such key pairs are used for automating logins, single sign-on, and for authenticating hosts

(for example cloning project from your private repo on Github straight to your aws machine).

Options: You can perform more complicated operations and using flags in order to generate a tailor-made key according to your use case, extended functionality are more powerful and secured. The basic flags are: bits (Large integers making the the RSA key be less vulnerable and hard to crack), passphrase (similar to password) , type (dsa/ecdsa/ed25519/rsa) , comment for the specific ssh token (email or user name) and output key (default store on

Synopsis: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] [-N new_passphrase] [-C comment] [-f output_keyfile]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *