Генерация ssh ключа для git linux

4.3 Git на сервере — Генерация открытого SSH ключа

Генерация открытого SSH ключа

Как отмечалось ранее, многие Git-серверы используют аутентификацию по открытым SSH-ключам. Для того чтобы предоставить открытый ключ, каждый пользователь в системе должен его сгенерировать, если только этого уже не было сделано ранее. Этот процесс аналогичен во всех операционных системах. Сначала вам стоит убедиться, что у вас ещё нет ключа. По умолчанию пользовательские SSH ключи сохраняются в каталоге

/.ssh домашнем каталоге пользователя. Вы можете легко проверить наличие ключа перейдя в этот каталог и посмотрев его содержимое:

Ищите файл с именем id_dsa или id_rsa и соответствующий ему файл с расширением .pub . Файл с расширением .pub — это ваш открытый ключ, а второй файл — ваш приватный ключ. Если указанные файлы у вас отсутствуют (или даже нет каталога .ssh ), вы можете создать их используя программу ssh-keygen , которая входит в состав пакета SSH в системах Linux/Mac, а для Windows поставляется вместе с Git:

Сначала программа попросит указать расположение файла для сохранения ключа ( .ssh/id_rsa ), затем дважды ввести пароль для шифрования. Если вы не хотите вводить пароль каждый раз при использовании ключа, то можете оставить его пустым или использовать программу ssh-agent . Если вы решили использовать пароль для приватного ключа, то настоятельно рекомендуется использовать опцию -o , которая позволяет сохранить ключ в формате, более устойчивом ко взлому методом подбора, чем стандартный формат.

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

Источник

4.3 Git on the Server — Generating Your SSH Public Key

Generating Your SSH Public Key

Many Git servers authenticate using SSH public keys. In order to provide a public key, each user in your system must generate one if they don’t already have one. This process is similar across all operating systems. First, you should check to make sure you don’t already have a key. By default, a user’s SSH keys are stored in that user’s

/.ssh directory. You can easily check to see if you have a key already by going to that directory and listing the contents:

You’re looking for a pair of files named something like id_dsa or id_rsa and a matching file with a .pub extension. The .pub file is your public key, and the other file is the corresponding private key. If you don’t have these files (or you don’t even have a .ssh directory), you can create them by running a program called ssh-keygen , which is provided with the SSH package on Linux/macOS systems and comes with Git for Windows:

First it confirms where you want to save the key ( .ssh/id_rsa ), and then it asks twice for a passphrase, which you can leave empty if you don’t want to type a password when you use the key. However, if you do use a password, make sure to add the -o option; it saves the private key in a format that is more resistant to brute-force password cracking than is the default format. You can also use the ssh-agent tool to prevent having to enter the password each time.

Now, each user that does this has to send their public key to you or whoever is administrating the Git server (assuming you’re using an SSH server setup that requires public keys). All they have to do is copy the contents of the .pub file and email it. The public keys look something like this:

Читайте также:  Windows check user password

Источник

Генерация SSH-ключа для работы с GitHub

Ключ 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 ключа для git linux

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

Рассмотрим вариант создания и добавления SSH-ключей к своему GitHub аккаунту.

Подготовка

Для начала скачаем и установим клиент GitHub по ссылке https://git-scm.com

Теперь попробуем клонировать существующий репозиторий c GitHub для понимания одной из самых популярных ошибок, возникающих при начале работы с Git. Для этого откроем установленную консоль Git Bash, нажав правую кнопку мыши и выбрав пункт Git Bash Here.

Не забудем предварительно перейти в подготовленный каталог для удобства экспериментов с Git. В моем случае это будет каталог C:/domains/test.

Введем в консоли Git Bash команду клонирования удаленного репозитория с GitHub:

Читайте также:  Windows server сброс до заводских настроек

Именно здесь мы столкнемся с фатальной ошибкой скачивания из-за ограничения доступа к GitHub:

Решим эту проблему созданием публичного ключа для GitHub.

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

  1. Для начала создания ключей введем следующую команду в Git консоль: В данном случае, E-mail будет использован как метка для удобства в дальнейшем использовании.
  2. Далее можно указать путь для сохранения ключей. Или нажать Enter, чтобы установить в место, предлагаемое по умолчанию. В моем случае это будет C:/Users/sbb/.ssh/id_rsa
  3. Теперь Git попросит нас ввести любую ключевую фразу для более надежной защиты вашего пароля. Можно пропустить этот этап просто нажав Enter:

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

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

  1. Сперва убедимся, что SSH-агент включен.
    Введем в консоли Git команду: Это запустит работу агента в фоновом режиме. После ввода этой команды, в консоли должно появиться id запущенного процесса.
    Примерно так:
  2. Добавим SSH-ключ в SSH-агент.
    Если вы хотите использовать уже существующие ключи, вместо только что сгенерированных, тогда нужно заменить id_rsa при вводе команды в консоли именем существующего файла, содержащий приватный ключ.
    В случаем использования только что созданных ключей просто вводим в консоль Git команду: Как результат, должно появиться в консоли следующее:

Следующим шагом будет добавление приватного ключа в GitHub аккаунт.

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

  1. Первым делом скопируем созданный SSH-ключ в буфер обмена командой: Или можно открыть файл с ключом в любом редакторе и скопировать вручную. Файл находится в директории C:/Users/ВАШЕ_ИМЯ/.ssh/id_rsa.pub
  2. Откроем настройки своего аккаунта на GitHub и перейдем в раздел SSH and GPC keys
  3. Нажмем на кнопку New SSH key
  4. Добавим в поле Title нужное вам название этого ключа, например, My New Key
  5. Вставим из буфера обмена в поле Key наш ключ
  6. И нажмем кнопку Add SSH key

Проверим, что все нами сделано верно, опять введя в консоль Git команду клонирования удаленного репозитория:

Через несколько секунд получим на своем локальном компьютере полную копию нужного нам репозитория.

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

Источник

Как сгенерировать свой SSH-ключ на Linux/MacOS/Windows

В этой статье я показал, как сгенерировать валидный ssh-ключ для любой ОС. Так же, кратко объяснил, как работать с этим ключом, какой ключ добавлять на сервер, и рассказал о некоторых нюансах генерации ключей, которые могут возникать у пользователей Windows.

Генерация SSH-ключа на Linux/MacOS

В системах Linux/MacOS уже встроена утилита ssh-keygen , которая позволяет из коробки сгенерировать пары SSH-ключей. Выполнив команду ssh-keygen из консоли компьютера, будет создан 2048-битный RSA-пара ключей, которую вы можете использовать для своих задач.

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

/.ssh . При генерации ключей, создаётся 2 файла id_rsa (приватный ключ), и id_rsa.pub (публичный ключ). Если вы будете использовать путь по умолчанию, как предлагает ssh-keygen, то это позволит автоматически находить ваши SSH-ключи при аутентификации. Потому, я рекомендую принять все предложения, просто нажав ENTER .

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

Если вы перезапишете ключ на новый, то старый больше не будет работать. Выбор опции y это необратимое удаление старого ключа, и перезапись его на новый.

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

Если вы зададите эту фразу, то вам придётся каждый раз, при использовании этого ключа вводить её (если вы не используете ПО агента SSH, которое хранит расшифрованный ключ). Я, обычно, оставляю эту фразу пустой, и просто нажимаю Enter , а так же, ниже, ещё раз подтверждаем ввод фразы, нажимая Enter .

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

Если вы не очень часто пользуетесь SSH, вы наверное путаетесь в том, что такое публичный ключ, и приватный ключ, и какой из них нужно добавлять на сервер (к примеру в DigitalOcean, GitHub), чтобы работала аутентификация. Так вот, вы делитесь с другими серверами только публичным ключом. Приватный ключ всегда хранится только на вашем локальном компьютере, и вы не должны делиться с ним ни с кем.

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

К сожалению, windows не может похвастаться встроенными инструментами генерации SSH-ключей. Потому, для того, чтобы создать пару SSH-ключей на windows, нужно установить утилиту PuTTY. Эта утилита позволяет подключаться к удалённым серверам через SSH, а их дополнительная утилита PuTTYgen используется для генерации SSH-ключей на windows.

Читайте также:  Fs1020mpf драйвер windows 10

На сайте вам необходимо скачать .msi версию (в секции Package files ), после чего запустить установку, следуя всем шагам установщика.

После того, как программа будет установлена, на вашем компьютере появится утилита PuTTYgen , найти которую вы можете либо в меню «пуск», либо нажав кнопку Windows и начать вводить её название:

А чтобы сгенерировать ssh-ключ через putty, вам нужно запустите эту утилиту. Её интерфейс созданию ключа будет выглядеть подобным образом:

Вы можете кастомизировать настройки создания ключей (во вкладке Parameters ), если хотите, но значения по умолчанию подходят для большинства всех случаев. Всё, что вам осталось — нажать на кнопку Generate , и рандомно подвигать мышкой ^^.

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

Затем вам будет предложено ввести ключевую фразе для этого SSH-ключа. Его заполнение повышает безопасность, так как кто-то, кто захватит доступ к этому ключу, не сможет его использовать, не зная ключевую фразу. Вы должны будете указывать эту фразу каждый раз, когда будете использовать этот ключ (если вы не используете ПО агента SSH, которое хранит расшифрованный ключ). Но, я, обычно, оставляю его пустым, для удобства , плевал я на безопасность.

Когда вы закончите настройку, нажмите на кнопку Save private key и выберите безопасное место, куда вы сохраните его. Вы можете назвать свой ключ как угодно, а расширение .ppk будет добавлено ему автоматически.

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

Работа с форматом публичного ключа PuTTY

Вы также можете нажать на кнопку Save public key , но учтите: формат, который использует PuTTYGen, при сохранении публичного ключа, несовместим с файлами OpenSSH authorized_keys , используемыми для аутентификации ключа SSH на серверах Linux. Потому, у вас по незнанию этого нюанса может возникать ошибка при добавлении ключа, созданного через PuTTY.

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

  • Откройте PuTTYgen.
  • Загрузите свой приватный ключ в утилиту, нажав на кнопку Load , и выбрав нужный файл ключа.
  • Скопируйте публичный ключ из ранее известного поля.

Генерация SSH-ключа на Windows с помощью Git Bash

Очень вероятно, что вы уже используете Git в своей системе. Потому, вам может даже не понадобиться установка PuTTY в свою систему. Ввиду того, что git bash является очень приближенной системой эмулирования Unix-подобных систем, там доступно большинство линуксовских команд. Потому, в этом случае, вы можете сгенерировать SSH ключ через GIT.

Потому, чтобы сгенерировать ключ в Windows, достаточно выполнить команду ssh-keygen , работа с которой была описана выше.

Резюме

В этой статье я показал, как сгенерировать ssh ключ на разный операционных системах: Windows, Linux, MacOS. Прочитав эту статью вы со стопроцентной уверенностью будете знать, как создать свой SSH ключ на любое ОС, с котороми будете работать. В этой статье показан подход, при котором генерируется общий ключ, который подойдёт под большинство случаев: ssh ключ для GitLab, GitHub, DigitalOcean.

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

Subscribe to Блог php программиста: статьи по PHP, JavaScript, MySql

Get the latest posts delivered right to your inbox

Источник

Оцените статью