Провайдер Bitbucket не предлагает (даже в платных тарифах Standard и Premium) возможность хранения ключей SSH с правами записи на уровне репозитория. Хранить ваш личный SSH-ключ на рабочем сервере невозможно, иначе вы сможете получить доступ ко всем другим проектам, над которыми в настоящее время работаете, оттуда. Есть так называемые ключи доступа , но они позволяют только читать права.
Итак, если вы разрабатываете локально в проекте, а затем интегрируете этот репозиторий на производственный сервер с доступом для записи, есть два варианта: либо вы создаете своего собственного пользователя (с лицензией и от 5 пользователей с оплатой) для этой цели, либо вы используете довольно неизвестная переадресация агента SSH .
С помощью этой процедуры вы можете повторно использовать локальный ключ SSH на удаленном сервере в текущем сеансе без необходимости постоянного хранения ключа там. Настройка проста: во-первых, вы убедитесь, что можете напрямую подключаться как к удаленному серверу, так и к Bitbucket, используя свой SSH-ключ. Затем вы запускаете агент SSH на своем локальном компьютере с помощью eval `ssh-agent -s` и сохраняете свой текущий ключ с помощью ssh-add -k . Теперь, когда активирована переадресация агента, вы подключаетесь к удаленному серверу через ssh -A username@host1 и затем можете получить доступ к своему репозиторию Bitbucket без дальнейшего запроса пароля и без необходимости хранить там SSH-ключ удаленного сервера.
Другая альтернатива — перейти к совершенно другому провайдеру: GitLab, например, уже предлагает в бесплатном плане так называемые ключи развертывания в дополнение к квоте в 10 ГБ (по сравнению с 2 ГБ у Bitbucket) и неограниченному количеству членов команды. Это позволяет вам хранить любое количество дополнительных ключей SSH (например, с рабочего сервера) индивидуально для каждого репозитория, которые предоставляют права записи в репозиторий.