Невозможно получить доступ к bitbucket с удаленного сервера, используя ключ SSH для выполнения мерзавца над последним кодом в хранилище - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь вытянуть последний код из bitbucket на сервер разработки (Ubuntu) с помощью команды git pull. Команда git pull пытается получить доступ к bitbucket от имени пользователя root через соединение SSH, но также запрашивает перефразировку, относящуюся к SSH. Корневая папка / .ssh на сервере Ubuntu содержит файлы id_rsa и id_rsa.pub, но я не могу добавить открытый ключ из id_rsa.pub в bitbucket, поскольку, очевидно, этот ключ используется кем-то другим. Я также не знаю перефразирования, относящегося к этому ключу SSH. Итак пара вопросов:

  1. Как удаленный сервер подключается к хранилищу bitbucket через SSH, когда я не могу добавить открытый ключ SSH в bitbucket?
  2. Стоит ли вместо этого создать новый SSH-ключ на сервере Ubuntu и попытаться добавить его (часть открытого ключа) в bitbucket, а затем получить доступ к bitbucket с помощью нового ключа?
  3. Если у меня нет парафразы, которые сервер продолжает вводить после ввода команды git pull, каков наилучший подход к извлечению кода из хранилища? Вот некоторые из них, которые я могу придумать, но я ценю рекомендации относительно лучшего подхода:

A) Создайте новый ключ SSH (с или без перефразирования, хотя я думаю, что перефразировать безопаснее), добавьте новый открытый ключ в bitbucket, затем попытайтесь извлечь код из bitbucket через SSH. Я думаю, что сервер все равно будет пытаться получить доступ к bitbucket от имени пользователя root, а не от имени пользователя, которое я использую для входа на сервер. Это, конечно, потребует от меня сначала получить права на чтение-запись-выполнение для папок / root и /root/.ssh (на моем сервере я отключил возможность входа пользователя root).

B) Использование существующего ключа SSH (который я не могу добавить в bitbucket, как упоминалось выше) для доступа к bitbucket от имени другого пользователя (не пользователя root, но, возможно, имени пользователя, которое я использую для входа на сервер Ubuntu?) Чтобы извлечь код из репозитория bitbucket с помощью этого подхода, нужно ли мне сначала устанавливать SSH-ключ в моем домашнем каталоге (/home/myusername/.ssh) на сервере Ubuntu?

1 Ответ

0 голосов
/ 06 января 2019

Как удаленный сервер подключается к хранилищу bitbucket через SSH, когда я не могу добавить открытый ключ SSH в bitbucket?

Протокол SSH-рукопожатия используется при инициализации соединения с Bitbucket, и это включает определение, какой ключ можно использовать. В этом случае будет проверяться каждый ключ в корне / .ssh, и когда он будет принят Bitbucket, будет установлено одно соединение (у вас может быть root / .ssh / config, в котором указано, какой ключ использовать, и только это будет использоваться)

SSH-ключи связаны с отдельными учетными записями в Bitbucket (отношение 1-1), а при получении SSH-ключа (из процесса рукопожатия) Bitbucket знает, какую учетную запись использовать. Видимо, кто-то уже использует этот ключ.

Должен ли я вместо этого создать новый ключ SSH на сервере Ubuntu и попытаться добавить его (часть открытого ключа) в bitbucket, а затем получить доступ к bitbucket с помощью нового ключа?

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

Если у меня нет парафразы, которые сервер продолжает вводить после ввода команды git pull, каков наилучший подход к извлечению кода из хранилища?

Неясно, почему вы используете root для доступа к Bitbucket, но если это возможно, у меня будет свой собственный ключ в моем домашнем каталоге /home/myusername/.ssh (и мой собственный клон удаленного хранилища на сервере).

В случае, если root выполняет некоторые задачи, связанные с извлечением из Bitbucket, вы можете создать для него отдельную учетную запись Bitbucket и использовать для нее отдельные ключи.

...