Как удаленный сервер подключается к хранилищу 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 и использовать для нее отдельные ключи.