Git подключение по ssh linux

Доступ к bitbucket и github по ssh ключам

Если попытка склонировать любой приватный репозиторий с bitbucket или github по ssh вызывает ошибку вида:

То это значит, что вы не прошли авторизацию по ssh-ключам. Тут 2 варианта:

  1. Клонировать через https схему, при этом будет запрошен имя пользователя и пароль от аккаунта. Минус тот, что при любом обращении к центральному серверу (пр. git fetch , git pull ) придётся снова вводить пароль.
  2. Настроить ssh-ключи, чтобы git-аутентификация проходила автоматически без ввода паролей и т.д.

Если ключи у вас уже есть, то читайте сразу как добавить ssh ключ на github или добавить ssh ключ на bitbucket.

Рассмотрим подробнее как 1. создать ssh-ключи на linux (ubuntu) и добавить ssh ключи на 2. github и 3. bitbucket.

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

Для генерации ssh-ключа выполняем следующие команды:

После этого будет предложено ввести имя файла с ключами, либо если имя файла не указать, ключи будут созданы в файле id_rsa. Задаём имя файла с ключами, например, как «git_rsa«. Таким образом мы будем знать, что этот ssh-ключ используется конкретно для git-авторизации. Хотя, никто не запрещает использовать один и тот же ключ id_rsa. Ключи будут храниться в домашней директории пользователя

На запрос о установке пароля на связку ключей можно нажать enter, т.е. оставить пароль пустым (это безопасно). Теперь в каталоге

/.ssh появились 2 файла ключа:

  • git_rsa — приватный, который нельзя никому сообщать
  • git_rsa.pub — публичный, который мы сообщим gitbucket и github

По умолчанию при подключении к серверу для ssh-авторизации используется ключ с именем id_rsa. Мы это обойдём. Чтобы не указывать имя нужного нам ключа (git_rsa) при каждом подключении к серверу, отредактируйте файл

/.ssh/config (если файла ещё нет, создайте), добавьте содержимое для идентификации bitbucket-хоста и github:

Всё, на нашем комьютере или сервере (смотря где создавали ключи) нужные ключи созданы. Остаётся сообщить (добавить) наш публичный ключ туда, где мы будем проходить авторизацию, т.е. на github и bitbucket.

Добавление ssh-ключа на github

В своём профиле нажимаем Edit Profile -> SSH Keys -> Add SSH key.

В свежем интерфейсе github:

  1. кликаем на иконку профиля в правом верхнем углу, далее
  2. выбираем меню Settings
  3. в меню слева выбираем SSH and GPG keys
  4. Жмем кнопку New SSH key.

В форме добавления ключа указываем title (это название ключа, вводится для удобства, не на что не влияет) и key (это сам ключ, т.е. вставляем сюда всё содержимое файла

/.ssh/git_rsa.pub). Нажимаем Add key.

Добавление ssh-ключа на bitbucket

Авторизуемся, заходим в свой аккаунт. Нажимаем SSH keys -> Add Key. После ввода ключа в попап окошке нажимаем кнопку Add key для сохранения ssh-ключа.

Теперь вы можете клонировать свои приватные репозитории по ssh (git@github) без ввода пароля.

На что стоит обратить внимание если ssh-авторизация по ключу все еще не работает:

  • Как удалить сабмодуль в git? Решено!
  • Как добавить на linux сервер мой публичный ключ для входа по ssh по ключу без пароля? 2 ответа
  • Как добавить сабмодуль в git? Решено!
  • Как отменить последний коммит в git? Решено!
  • git удалить список тегов с сервера Решено!
  • git. Настройка git 0 комментариев
  • git алиасы 0 комментариев
  • Отправить Pull Request в чужой репозиторий на github 0 комментариев
  • Настройка прав для id_rsa (bad permissions) 0 комментариев
  • Сказать git какой из ssh-ключей использовать 0 комментариев

Комментарии 5

Мне вообще уже этот «Permission denied (publickey).» всю печёнку выел!
Суть такова: есть боевой проект на jino.ru, есть репо на bitbucket-е, есть локальная версия. Сгенерил путтигеном ключи. Публичный положил на сервер в папку .ssh и добавил ключ к аккаунту на битбаккете. У себя на ПК в путти-агенте активировал приватный ключ — все должно заработать, ан нет! В путти пытаюсь запулить или запушить изменения в связке бой-битбакет — постоянно такая шняга вылезает:

Читайте также:  Iso образ windows 10 pro vl 32 64 bit by ovgorskiy

«Warning: Permanently added the RSA host key for IP address ‘2406:da. e9:9f55’ to the list of known hosts.
Permission denied (publickey).»

да, на бою в папке .ssh после первого запуска пула или пуша в путти был такой запрос:

»
The authenticity of host ‘bitbucket.org (2406:da0. 2c0:3470)’ can’t be established.
RSA key fingerprint is SHA256:zzX. YXaGp1A.
RSA key fingerprint is MD5:97:8c:1. aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?
»
как я понял, что-то в стиле «подлинность битбакета не установлена, хотите ли продолжить?». Я ответил согласием, после чего создался успешно файл known_hosts (на бою в папке с ключами), куда пишется ip битбаккета (как я понимаю) и дублируется строка из ключа доступа в том виде ,в котором лежит на битбакете. На др ресурсах вычитал, что чтобы Warning не выскакивал, нужно на бю в папке с ключами положить файл config без расширения и с содержимым «UserKnownHostsFile

/.ssh/known_hosts» — сделано. Права доступа на файл ключа на бою — 600, на остальные 2 файла (конфиг и хостс) — 644, на всю папку .ssh — 700.

Что еще нужно, чтобы пул/пуш заработал по ssh. Я уже в депрессии полнейшей!)) Может для доступа к самому репо на битбакете отдельные ключи нужно добавлять? Типа, к аккаунту на битбаккете подключается, а к репе уже нет?

Amati2007, с виду вы все делаете верно!
на битбакет публичный ключ достаточно добавить только в аккаунт. Можно и отдельно в каждый репозиторий добавлять ключ, но не обязательно.

Вот еще вы пишете, что в бою при запушить возникает ошибка «Permission denied (publickey)».
1) А как вы на боевой сервер подключаетесь? Вводите пароль или авторизуетесь по тому же самому ssh ключу? Если вводите пароль, то попробуйте для начала проверить ssh-авторизацию на хостинг по тому же ключу.
2) У вас одна единственная пара ключей создана и называется id_rsa по дефолту? Чтобы убедиться что один и тот же ключ используется для коннекта, тот же что на битбакет прописан.
3) а в

/.ssh/config нет ничего лишнего? Указания на какой-то левый ключ? Для чистоты эксперимента удалить файл)
4) known_hosts удалить для чистоты эксперимента, он должен сам создаваться при первом подключении (хотя возможно еще зависит от ssh-клиента).

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

/.ssh/known_hosts и все. Изначально этого файла не было и без него всегда выдает Warning. если соединяюсь по ssh. С ним. с ним warning выдавать не должно, но выдает все равно, правда не всегда — если в путти сделать 4 раза подряд сделать попытку пуш или пулл, то этого сообщения нет. Оно появляется с 5-ой и далее попытки. И да, я еще приметил, что в тексте сообщения этого warning вторая часть (после ::) значения IP всегда разное. Например:
5-я попытка -> 2406:da00:ff00::6b17:d1f5
6-я попытка -> 2406:da00:ff00::22c2:513
7-я попытка -> 2406:da00:ff00::22c0:3470

и т.д.
То есть складывается такое ощущение, что у битбакета динамический IP, хотя, по-идее, для таких подключений должен быть набор статичных. Они даже их список где-то публиковали.
4) Да, если я удаляю known_hosts, то при попытке пула / пуша в путти вначале идет запрос про ключи The authenticity of host ‘. (полный текст я приводил в основном сообщении), а когда я отвечаю на него Yes, то known_hosts на сервере создается заново.

Ремарка: если пробовать работать с репо не по ssh, а по https, то происходит следующее: при заходе в путти по логин/паролю все успешно, при попытке пулл/пуш просит пароль — я его ввожу тот, что от аккаунта битбакета и, вуаля, меня не пускает. все тот же «Доступ запрещен», хотя локальная связка работает и я могу как принимать файлы с битбакета на локал, так и отправлять изменения обратно.

Источник

cham11ng / git-ssh-configuration.md

Git Installation and SSH Configuration

Installation

We can check if Git is installed by typing git —version in your Terminal or Git Bash (Windows) respectively.

Download Git for Windows from this link https://git-scm.com/downloads

Configuration

Set up SSH for Git

Open your Terminal or Git Bash(Windows).

  • Ensure we have SSH client installed:
Читайте также:  Сетевой путь mac os

List the contents of your

If we have already setup default identity, we can see two id_ files

  • Set up our default identity:

The system adds keys for all identities to the /home/ /.ssh (Linux) or /c/Users/ /.ssh (Windows) directory. The following procedure creates a default identity.

Hit ssh-keygen command on Terminal or Git Bash.

Press enter to accept the default key and location or we can set somewhere else.

We enter and re-enter a passphrase when prompted. Unless you need a key for a process such as script, you should always provide a passphrase. The command creates your default identity with its public and private keys

List the contents of your

  • Adding your SSH key to the ssh-agent:

Ensure ssh-agent is enabled:

Add your SSH key to the ssh-agent

  • Find and take a note of your public key fingerprint. If you’re using OpenSSH 6.7 or older:
  • Install the public key on your Remote GitHub/Bitbucket account:

Copy this output to respective SSH keys setting.

  • GitHub Setting >> SSH and GPG keys >> New SSH key
  • Bitbucket Setting >> SSH keys >> Add Key

You have now successfully configured SSH for Git in Windows/Linux/Mac OS.

Источник

Git инструкция для начинающих. Работаем с GitHub

Это запись о том как быстро начать работу с Git’ом. Не какой воды.

Установка Git

Первоначальная настройка git

Настройка SSH-авторизации

Далее жмем несколько раз “Enter” и получаем вот такое сообщение в консоли.

Далее копируем открытый ssh-ключ в буфер обмена. Команда для копирования вводится в зависимости от Вашей OS.

Для Mac

Для Linux (Ubuntu)

Для Windows (Git Bash)

Как ввести SSH ключ на стороне Git’a

Входим в свой аккаунт на Git’e, далее наводим курсор мышки на свою аватарку и жмем “Settings”:

Теперь жмем на вкладку “SSH and GPG keys”:

Далее нажимаем кнопку “New SSH Key”. Указываем имя и вставляем ключ в поле Key. Нажимаем Add Key.

Работа с репозиторием

Теперь на сайте github.com создадим новый репозиторий, если это новый проект.
Теперь перейдём в папку с проектом на локальной машине и дадим команду:

Клонирование репозитория

Покажу на примере Windows.

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

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

Клонирование репозитория с помощью командной строки

На GitHub перейдите на главную страницу репозитория.

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

Под именем хранилища нажмите Клонировать или загрузить .

Чтобы клонировать репозиторий с использованием HTTPS, в разделе «Клонировать с HTTPS» нажмите . Чтобы клонировать репозиторий с использованием ключа SSH, включая сертификат, выданный центром сертификации SSH вашей организации, нажмите « Использовать SSH» , затем нажмите .

Откройте Git Bash. TerminalTerminal

Измените текущий рабочий каталог на место, где вы хотите сделать клонированный каталог.

Введите, git clone а затем вставьте URL-адрес, скопированный на шаге 2.

Нажмите Enter. Ваш местный клон будет создан.

Источник

sergey vasin

The IT blog

Подключение Git Bash к GitHub.com с использованием SSH

Эта статья подразумевает, что у вас уже есть учетная запись на github.com, вы скачали и установили Git Bash с сайта git-scm.com и теперь хотите работать со своими репозиториями, используя SSH.

Собственно о том, как настроить этот самый SSH и пойдет речь в этой статье.

Но сначала о том, что особенного в этом методе подключения.

Подключение с использованием SSH подразумевает генерацию пары ключей, добавление этих ключей к SSH-агенту, при помощи которого и будет происходит взаимодействие, а также добавление открытого ключа к своему аккаунту на github.com.

Использование SSH избавляет вас от необходимости использовать имя и пароль, так как вместо этого используется пара ключей — открытый и закрытый (public and private), однако в целях безопасности закрытый ключ должен быть зашифрован при помощи пароля.

Для начала, проверим нет ли у нас каких либо уже существующих ключей.

Запустим Git Bash и введем команду

Этой командой мы получаем список файлов из папки .ssh, находящейся в профиле текущего пользователя —

. Если вы там обнаружите что-то вроде id_rsa и id_rsa.pub, то, возможно, ключ у вас уже есть, и если вместо генерации новых вы решите использовать существующий, то можете сразу переходить к шагу добавления ключей к ssh-агенту. Мы же тут сделаем вид, что никаких ключей у нас нет и приступим к их генерации.

Читайте также:  Windows 10 занята вся оперативная память

Генерируем ключи

Для генерации новой пары ключей в консоли git bash введите следующую команду:

В этой команде параметр -t задает тип, в данном случае мы используем rsa. Параметр -b задает длину ключа, 4096 выглядит вполне подходящим значением. Параметр -C задает комментарий к генерируемым ключам, в котором мы указываем свой email адрес.

Git bash сообщит что происходит генерация ключа, а после попросит указать место сохранения файлов с ключами. Мы можем либо нажать Enter и согласиться с местоположением и именем по умолчанию:

/.ssh/id_rsa.pub, либо указать свой вариант.

Добавляем ключи к ssh-агенту

Теперь нам нужно добавить сгенерированные ключи к ssh-агенту.

Тут есть интересная вещь, если у вас установлен Git Desktop, то вы можете управлять репозиториями через него и не обращать внимания на то, о чем мы тут говорим. Однако же, управление Git через консоль с помощью какой либо утилиты, вроде Git for Windows, о чем мы здесь и рассуждаем, является более предпочтительным методом, поэтому стоит обратить внимание на вопросы запуска ssh-агента. Далее в статье мы рассмотрим, как настроить его автоматический запуск, сейчас же мы запустим его вручную, командой:

Теперь нам нужно добавить созданные ключи к ssh-агенту. Сделаем мы это командой:

В данном случае мы указали местоположение по-умолчанию. Именно в этом файле будут находиться ключи в случае, если на вопрос о месте сохранения файлов ключей при их генерации вы приняли значение по-умолчанию, нажав Enter.

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

Добавление ключа к вашей учетной записи на GitHub.com

Итак, что мы имеем. Мы сгенерировали пару ключей, ссобщили об их местонахождении ssh-агенту. Теперь же нам нужно также сообщить сайту GitHub.com об их существовании. Точнее о существовании открытого ключа из созданной нами пары.

Для этого сначала получим значение открытого ключа при помощи следующей команды:

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

Далее заходим на сайт GitHub.com под своей учетной записью и, щелкнув на своем аватаре, выбираем Settings. В меню, расположенном в левой части, выбираем SSH and GPG keys и нажимаем New SSH key. Заполняем поле Title, для того, чтобы нам самим было понятнее, что это за ключ, вставляем содержимое файла открытого ключа из буфера в поле Key и нажимаем Add SSH key.

Проверка SSH-соединения

Теперь давайте проверим ssh-соединение. Для этого в консоли Git Bash введем команду:

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

После ввода пароля вы можете получить что-то вроде:

В этом случае проверьте, что и вы и Git Bash имеете в виду один и тот же ключ, сверив выведенное значение отпечатка (fingerprint) с тем, что было получено при генерации ключей. Ели все в порядке, отвечайте на вопрос утвердительно.

В итоге вы должны получить сообщение:

где вместо username должно присутсвовать имя вашей учетной записи.

Изменение пароля шифрования закрытого ключа

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

Автоматический запуск ssh-агента при старте Git Bash

Для того, чтобы ssh-агент каждый раз запускался автоматически при старте Git Bash, добавьте в файл

/.bashrc следующий код:

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

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

Источник

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