- 4.3 Git на сервере — Генерация открытого SSH ключа
- Генерация открытого SSH ключа
- Создание ssh ключа для git windows
- Подготовка
- Генерация SSH-ключей для GitHub
- Добавление созданных SSH-ключей в SSH-агент
- Добавление нового SSH-ключа в GitHub аккаунт
- Git SSH Windows — пошаговое руководство
- Генерация ключа SSH
- Добавление SSH-ключа в ssh-agent
- Добавление ключа SSH в учетную запись GitHub
- Git — Как в windows установить ssh ключи для github (пошаговая инструкция)
- Инструкция для github.com
- Как сгенерировать SSH ключ
- Ошибки при отсутствии SSH ключа
- I. Создание ключа ssh
- II. Смотрим свой публичный ключ
- Важно
- Читайте также
- Добавить комментарий Отменить ответ
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 и отправить его по электронной почте. Открытый ключ выглядит примерно так:
Создание ssh ключа для git windows
На данный момент, один из самых популярных репозиториев для системы контроля версий GitHub, использует аутентификацию пользователей через открытые SSH-ключи. Это позволяет работать с сервисом без ввода логина и пароля, а также удобно производить контроль доступа к своему репозиторию.
Рассмотрим вариант создания и добавления SSH-ключей к своему GitHub аккаунту.
Подготовка
Для начала скачаем и установим клиент GitHub по ссылке https://git-scm.com
Теперь попробуем клонировать существующий репозиторий c GitHub для понимания одной из самых популярных ошибок, возникающих при начале работы с Git. Для этого откроем установленную консоль Git Bash, нажав правую кнопку мыши и выбрав пункт Git Bash Here.
Не забудем предварительно перейти в подготовленный каталог для удобства экспериментов с Git. В моем случае это будет каталог C:/domains/test.
Введем в консоли Git Bash команду клонирования удаленного репозитория с GitHub:
Именно здесь мы столкнемся с фатальной ошибкой скачивания из-за ограничения доступа к GitHub:
Решим эту проблему созданием публичного ключа для GitHub.
Генерация SSH-ключей для GitHub
- Для начала создания ключей введем следующую команду в Git консоль: В данном случае, E-mail будет использован как метка для удобства в дальнейшем использовании.
- Далее можно указать путь для сохранения ключей. Или нажать Enter, чтобы установить в место, предлагаемое по умолчанию. В моем случае это будет C:/Users/sbb/.ssh/id_rsa
- Теперь Git попросит нас ввести любую ключевую фразу для более надежной защиты вашего пароля. Можно пропустить этот этап просто нажав Enter:
Итак, мы сгенерировали SSH-ключи и теперь перейдем к следующему этапу.
Добавление созданных SSH-ключей в SSH-агент
- Сперва убедимся, что SSH-агент включен.
Введем в консоли Git команду: Это запустит работу агента в фоновом режиме. После ввода этой команды, в консоли должно появиться id запущенного процесса.
Примерно так: - Добавим SSH-ключ в SSH-агент.
Если вы хотите использовать уже существующие ключи, вместо только что сгенерированных, тогда нужно заменить id_rsa при вводе команды в консоли именем существующего файла, содержащий приватный ключ.
В случаем использования только что созданных ключей просто вводим в консоль Git команду: Как результат, должно появиться в консоли следующее:
Следующим шагом будет добавление приватного ключа в GitHub аккаунт.
Добавление нового SSH-ключа в GitHub аккаунт
- Первым делом скопируем созданный SSH-ключ в буфер обмена командой: Или можно открыть файл с ключом в любом редакторе и скопировать вручную. Файл находится в директории C:/Users/ВАШЕ_ИМЯ/.ssh/id_rsa.pub
- Откроем настройки своего аккаунта на GitHub и перейдем в раздел SSH and GPC keys
- Нажмем на кнопку New SSH key
- Добавим в поле Title нужное вам название этого ключа, например, My New Key
- Вставим из буфера обмена в поле Key наш ключ
- И нажмем кнопку Add SSH key
Проверим, что все нами сделано верно, опять введя в консоль Git команду клонирования удаленного репозитория:
Через несколько секунд получим на своем локальном компьютере полную копию нужного нам репозитория.
Таким образом единожды проведя операцию создания публичного SSH-ключа и внеся его в свой профиль на GitHub, мы обеспечим себе удобную и безопасную работу с удаленным репозиторием.
Git SSH Windows — пошаговое руководство
Настроим пошагово Git SSH для Windows 10. Это позволит вам выполнять команды git без ввода пароля от своей учетной записи GitHub.
- Генерация ключа SSH.
- Добавление SSH-ключа в ssh-agent.
- Добавление ключа SSH в учетную запись GitHub.
Генерация ключа SSH
Откройте bash/терминал . Добавьте следующий текст, подставив свой адрес электронной почты GitHub .
Будет создан ключ ssh , используя e-mail в качестве метки.
Когда вам будет предложено «Введите файл, в котором вы хотите сохранить ключ», нажмите Enter . Это установит в местоположение по умолчанию.
Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):[Press enter]
Далее введите безопасную фразу-пароль дважды или просто нажмите Enter .
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
Добавление SSH-ключа в ssh-agent
Чтобы запустить ssh-агент введите следующую команду.
На экране отобразится похожая строка.
Agent pid 31724
Добавим свой закрытый ключ SSH в ssh-agent . Если вы создали свой ключ с другим именем (или добавляете существующий ключ с другим именем), замените в команде id_rsa на имя вашего файла закрытого (приватного) ключа.
Ключ будет успешно добавлен в ssh-агент .
Добавление ключа SSH в учетную запись GitHub
Мы сгенерировали у себя на компьютере закрытый ключ SSH и добавили его в ssh-агент . Теперь нам необходимо добавить SSH ключ в учетную запись GitHub.
Сейчас нам необходимо скопировать SSH ключ в буфер обмена.
Способов есть несколько, но я же вам предлагаю следующее решения для Windows 10: введите команду ниже.
Прямо в терминале вы увидите содержимое необходимого файла с ключем. Скопируйте его в буфер.
Теперь зайдите на вашу страницу GitHub » Settings .
Перейдите во вкладку SSH and GPG keys и нажмите на кнопку New SSH key для добавления SSH ключа в вашу учетную запись GitHub.
В поле Title добавьте заголок для данного ключа. Например, если вы захотите настроить SSH доступ на нескольких устройствах, то вы будите понимать какой ключ принадлежит какому устройству.
В поле Key добавьте свой ssh-ключ, который вы скопировали в буфер обмена на предыдущем шаге.
Нажмите Add SSH key .
Для подтверждения вам потребуется ввести свой пароль от учетной записи GitHub .
На этом настройка SSH для вашего устройства завершена, теперь вы можете работать с git без ввода пароля от своей учетной записи.
Если вам понравилась данная статья, можете прочитать как настроить моментальную загрузку сайта на хостинг и синхронизацию файлов.
Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки, то можете следить за выходом новых статей в Telegram.
Git — Как в windows установить ssh ключи для github (пошаговая инструкция)
Сам я не пользуюсь windows для разработки, но мои ученики как правило начинают с windows в качестве основной системы, по этому для них я решил написать эту пошаговую инструкцию.
Инструкция для github.com
Предполагается что вы используете OpenServer
Шаг 1. Сгенерировать ssh-ключи.
Для этого нужно открыть консоль OpenServer (это просто программа conEmu с указанием системных переменных) и набрать как написано в этой инструкции:
Шаг 2. Найти где лежат ключи
При генерации консоль напишет куда упали сгенерированные ключи. Из скриншотов выше видно что они лежат по адресу C:/OpenServer/.ssh вот пусть там и лежат. Находим эту папку и видим там два файла:
Для удобства я их переименовываю id_rsa в github, а id_rsa.pub в github.txt.
Шаг 3. Создать конфигурационный файл
В папке .ssh найденной на шаге 2 создаём файл config (без расширения) с следующим содержанием:
Шаг 4. Добавить публичный ключ в аккаунт github
Заходим по этой ссылке https://github.com/settings/keys и нажимаем кнопку «New SSH key». Указываем Title (любой) а в поле Key копируем содержание файла github.txt полученного на шаге 2, нажимаем «Add SSH key» и ещё раз вводим свой пароль от аккаунта github (меры безопасности)
Вот и всё, теперь можно клонировать из репозиториев с github используя ssh а главное можно пушить в свои репозитории на github без постоянного ввода пароля (как при использовании протокола https)
Как сгенерировать SSH ключ
Создаём публичный SSH ключ.
Ошибки при отсутствии SSH ключа
При отсутсвии публичного ключа для доступа к GIT репозиторию возникнет ошибка:
А если это связано со скриптом, который запускается при инициализации GIT репозитория и в котором указаны дальнейшие инструкции, то могут посыпаться и другие ошибки:
Т.е. из-за того что гит репозиторий не подтянулся, а скрипт идет дальше по указаниям, которые нужно сделать для скаченных папок, хотя ничего не скачено, вот и показываются соответствующие ошибки.
Для исправления ошибки Permission denied (publickey) необходимо занести публичный ssh ключ, который сгенерирован для компьютера, с которого осуществляется доступ на сайт github.com.
I. Создание ключа ssh
Открываем терминал и переходим в папку с ключами:
Смотрим какие файлы там существуют:
Обычно что-то вроде:
где файлы:
id_rsa – содержит секретный ключ;
id_rsa.pub — публичный ключ.
Если файлов id_rsa и id_rsa.pub нет или чтобы их пересоздать, вводим команду:
На вопрос перезапустить:
II. Смотрим свой публичный ключ
Внутри будет содержаться сгенерированный ключ, что-то вроде этого:
Этот ключ копируем и вставляем на страницу:
https://github.com/settings/keys
Там создаём ключ, нажимая на New SSH key
Вводим название ключа, например, название операционной системы (к примеру – Mac OS). А в поле Key, вставляем содержимое которое было скопировано из терминала.
Теперь не должно быть проблем при соединении этого компьютера с сервисами сайта github.com
Важно
Если мы настраиваем автодеплой на GIT, то первый раз команду git pull надо запустить в ручном режиме! Это необходимо, чтобы добавить аутентификацию гита на свой сервер.
git pull
The authenticity of host ‘github.com (140.82.118.3)’ can’t be established.
RSA key fingerprint is SHA256:.
RSA key fingerprint is MD5:.
Are you sure you want to continue connecting (yes/no)? yes
Подтверждаем. Теперь скрипты будут работать в автоматическом режиме.
Читайте также
На сайте отсутствует реклама! Значете почему?
Помогать людям — моё хобби. А навыки разработчика позволяют не парится нулевой монетизизацией этого сайта. Хотя.
Если вам помогла информация, то даже от доната в 40 рублей мне будет приятно. Докину немного, куплю латте в макдаке, вспомню за чей счет банкет и карма вам зачтется!
Но и просто оставленный комментарий благодарности ниже принесет мне улыбку радости 🙂
А если захочется написать всякие гадости с переходом на личности, да тоже не стесняйтесь, но обычно я отправляю такое в спам. Люблю, когда дома чисто.
Добавить комментарий Отменить ответ
Если возникнут вопросы пишите на электронную почту.