Как добавить пользователя в репозиторий bitbucket
Перейти к содержимому

Как добавить пользователя в репозиторий bitbucket

  • автор:

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

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

Permission denied (publickey). fatal: The remote end hung up unexpectedly

То это значит, что вы не прошли авторизацию по 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-ключа выполняем следующие команды:

cd ~/.ssh ssh-keygen -t rsa

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

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

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

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

Host bitbucket.org IdentityFile ~/.ssh/git_rsa Host github.com IdentityFile ~/.ssh/git_rsa

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

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

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

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

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

GitHub добавление нового ssh-ключа для доступа к репозиториям без ввода пароля

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

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

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

bitbucket создание ssh-ключа

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

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

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

  • на ключ id_rsa не должно быть слишком много прав
  • у вас создано несколько ssh-ключей и нужно дать понять какой из ключей использовать

Поисковые запросы , по которым приходили пользователи

Дата добавления: 9 лет назад

bitbucket git ssh-keys

Похожий контент:

  • Как удалить сабмодуль в git? Решено!
  • Как узнать адрес origin репозитория в git? Решено!
  • Как посмотреть diff файлов которые в индексе git? Решено!
  • Не открывает git remote 1 ответ
  • Ошибка при деплое на gh-pages: Failed to get remote.origin.url 1 ответ
  • git. Настройка git 0 комментариев
  • Полезные git aliases 0 комментариев
  • Отправить Pull Request в чужой репозиторий на github 0 комментариев
  • Настройка прав для id_rsa (bad permissions: Permissions id_rsa are too open) 0 комментариев
  • Сказать git какой из ssh-ключей использовать 0 комментариев

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

Andres 5 лет назад
Спасибо, Бро!
Amati2007 3 года назад

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

«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. Я уже в депрессии полнейшей!)) Может для доступа к самому репо на битбакете отдельные ключи нужно добавлять? Типа, к аккаунту на битбаккете подключается, а к репе уже нет?

root 3 года назад

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

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

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

Amati2007 3 года назад

root, спасибо, что пытаетесь мне помочь!
1) На боевой я положил публичный ключ и назвал его authorized_keys согласно п.4 инструкции по добавлению на сервер ключей ssh от хостера (https://jino.ru/help/faq/ssh/ssh-key-auth/). То есть ,если этого ключа на боевом сервере нет, то при запуске путти просит указать и логин и пароль. Если же этот ключ там лежит, то путти просит ввести логин, а затем выдает строку Authenticating with public key «rsa-key-20201109» from agent, из которой можно понять, что авторизация по ключам с сервером успешна.
2) Да, я проводил чистый эксперимент — удалил все ключи с пк, с сервера и с битбаккета, перегенерировал их через puttygen и вновь все разложил (сохраненный публичный положил на боевой под названием файла authorized_keys, строку из самого путтигена — на битбакет (название файла ключа там необязательное поле, но я ввел такое же ,как на боевом), приватный подключил в puttyagent).

Amati2007 3 года назад

3) В config только строка UserKnownHostsFile ~/.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, то происходит следующее: при заходе в путти по логин/паролю все успешно, при попытке пулл/пуш просит пароль — я его ввожу тот, что от аккаунта битбакета и, вуаля, меня не пускает. все тот же «Доступ запрещен», хотя локальная связка работает и я могу как принимать файлы с битбакета на локал, так и отправлять изменения обратно.

Bitbucket — доступ НА ЗАПИСЬ одной машине в один проект

Есть бесплатный аккаунт Bitbucket с несколькими проектами. Создаю новый проект, хочу открыть доступ НА ЗАПИСЬ для одной определенной машины (указав SSH-ключ этой машины). В настройках проекта вижу только раздел Access keys, где можно открыть доступ НА ЧТЕНИЕ для определенных машин (указанием SSH-ключей этих машин). В общих настройках аккаунта в разделе SSH keys, можно открыть доступ НА ЗАПИСЬ ВО ВСЕ ПРОЕКТЫ определенным машинам (указанием SSH-ключей этих машин). Как открыть доступ НА ЗАПИСЬ в одном определенном проекте для одной определенной машины (указав SSH-ключ этой машины, без указания пользователей и групп Bitbucket)?

Отслеживать
задан 29 июн 2017 в 8:00
199 11 11 бронзовых знаков
Спросите у них, support.atlassian.com/bitbucket
29 июн 2017 в 8:08

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

29 июн 2017 в 8:58
@alexanderbarakin да ладно вам, это же простая операция, без техподдержки легко делается.
29 июн 2017 в 10:20

@NickVolynkin, ну, если ключи закрепляются не (только) за пользователем, а (и) за хранилищем, тогда, действительно, техподдержку спрашивать не надо.

29 июн 2017 в 10:26

@alexanderbarakin мне кажется, именно для этой задачи и была реализована такая возможность. Пишут: «Access keys provide a simple way for other systems to. «.

Bitbucket: Крутой облачный GIT репозиторий

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

Bitbucket: Крутой облачный GIT репозиторий

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

Web-hosting rating: 8 out of 10 with 325 ratings

Что такое VCS

Система управления версиями кода (VCS) позволяет вести историю изменений кода и файлов. Через нее можно проконтролировать и увидеть кто вносил изменения в код, когда вносились изменения и в какие части кода. Также система управления версиями кода позволяет в короткие сроки откатиться до нужной версии кода продукта

Популярные системы управления версиями кода

В настоящих момент существует несколько систем управления версиями кода, или VCS (Version Control System). Мы коротко остановимся на самых популярных, которые используют в крупных ИТ-компаниях по всему миру. Я выделил 3 системы управления версиями: SVN, GIT, MERCURIAL.

Я не буду подробно останавливаться на этих системах управления версиями, для этого будут другие статьи, единственное скажу, что SVN на данный момент считается устаревшим и в основном в крупных компаниях и проектах используют GIT и MERCURIAL, так как в GIT и MERCURIAL лучше реализован функционал работы с ветками проктов и эти системы контроля версий кода децентрализованы, то есть нет необходимости создавать отдельный сервер, для того чтобы использовать GIT и MERCURIAL, в отличии от SVN.

BitBucket. Облачный хостинг VCS и его возможности

Все больше набирает популярность BitBucket хостинг системы управления версиями, как и GitHub в нем реализованы функции VCS с возможностью использовать GIT и Mercurial в качестве системы управления версиями

Знаете ли вы, что BitBucket — это проект компании Atlassian известная своим популярным по всему миру продуктом Jira, системой управления проектами.

Особенностью BitBucket, по сравнению с GITHUB — это возможность бесплатно создавать приватные репозитории кода (private) в неограниченном количестве, а платить придется если количество пользователей по всем вашим проектам будет более 5. Т.е. до пяти пользователей, вы ничего не платите.

Единственное ограничение — размер репозитория не должен превышать 2 гигабайта, так как BitBucket — это все же контроль версий кода, а не файловое хранилище.

Зарегистрироваться в BitBucket можно по ссылке: https://bitbucket.org/account/signup/. В процессе регистрации вам нужно заполнить поля формы регистрации и выбрать тип аккаунта «Personal или Team». BitBucket бесплатно предоставляет персональный аккаунт и Team аккаунт до пяти человек в команде.

Для маленького проекта вполне будет хватать бесплатного аккаунта, а когда ваш проект начнет расширяться, вам обойдется BitBucket всего 10 долларов за команду до десяти человек и 25 долларов за команду до 25 человек. Согласитесь, это очень маленькая цена, за тот функционал, который предоставляет BitBucket.

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

Как создать приватный репозиторий в BitBucket

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

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

В поле Owner заполняется владелец репозитория: Им можете быть только вы или ваша команда. Команду вы можете создать по нажатию на кнопку Teams — Create Team.

В поле Name необходимо заполнить имя проекта, а также в поле Descriptions описание проекта. Важный пункт — это Access level, так как если вы не поставите чекбокс на этом пункте, репозиторий будет публичным и любой пользователь интернета сможет посмотреть ваш исходный код.

Далее вам нужно в поле Repository type выбрать систему контроля версий кода. BitBucket поддерживает две: Git и Mercurial.

Пункт Project — Issue tracking — это связь встроенная система управления проектами Jira с урезанным функционалом. Она очень полезна, если вы хотите ставить задачи программистам и контролировать их процесс выполнения. Пункт Wiki — это возможность создавать Wiki документацию к проекту.

После того как нажмете кнопку Create repository, вы сможете посмотреть ваш репозиторий и сделать в него первый коммит. В BitBucket есть удобная инструкция как добавить код вашего проекта в репозиторий: как в существующий, так и создать пустой проект.

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

Более того, вы можете интегрировать с Jira и тогда вы сможете связать поставленные задачи в Jira с коммитами в BitBucket.

Резюме

В этой статье мы рассказали о облачном хостинге контроля версий кода BitBucket. Попробуйте в своих проектах использовать GIT или MERCURIAL и вы не захотите больше вернуться к правкам сайтов через FTP.

В следующих статьях более подробно расскажем как работать с GIT, расскажем его основные команды (git pull, git commit, git merge, git push).

Продолжение о том, как использовать GIT в связке с BitBucket читайте в статье: GIT команды: Быстрый старт для новичков

Доступ к закрытому разделу сайта

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

Приглашение участников совместной работы в личный репозиторий

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

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

About collaboration in a personal repository

To collaborate with users in a repository that belongs to your personal account on GitHub.com, you can invite the users as collaborators.

If you want to grant more granular access to the repository, you can create a repository within an organization. For more information, see «Access permissions on GitHub.»

Private forks inherit the permissions structure of the upstream repository. This helps owners of private repositories maintain control over their code. For example, if the upstream repository is private and gives read/write access to a team, then the same team will have read/write access to any forks of the private upstream repository. Only team permissions (not individual permissions) are inherited by private forks.

Inviting a collaborator to a personal repository

You can send an invitation to collaborate in your repository directly to someone on GitHub.com, or to the person’s email address

GitHub limits the number of people who can be invited to a repository within a 24-hour period. If you exceed this limit, either wait 24 hours or create an organization to collaborate with more people. For more information, see «Creating a new organization from scratch.»

  1. Ask for the username of the person you’re inviting as a collaborator. If they don’t have a username yet, they can sign up for GitHub. For more information, see «Signing up for a new GitHub account.»
  2. On GitHub.com, navigate to the main page of the repository.
  3. Under your repository name, click

Settings. If you cannot see the «Settings» tab, select the

Screenshot of a repository header showing the tabs. The

dropdown menu, then click Settings.

Further reading

  • «Permission levels for a personal account repository»
  • «Removing a collaborator from a personal repository»
  • «Removing yourself from a collaborator’s repository»
  • «Organizing members into teams»

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

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