Не могу получить доступ к AWS CodeCommit через SSH

Неимоверно трудно понять, как заставить AWS CodeCommit работать со стандартной аутентификацией SSH. Посмотрел другую тему, как это, но ответа нет, и мне пока не разрешено комментировать. Это на Windows с помощью Git Bash.

Репро Шаги

  1. Создан пользователь IAM с полными разрешениями (AwsAdministrator)
  2. Из Git Bash в ~ /.ssh
  3. "cat id_rsa.pub" и скопировать вывод в буфер обмена
  4. В консоли IAM нажмите кнопку, чтобы добавить ключ SSH и вставить в поле ввода. Нажмите Сохранить.
  5. Попытайтесь получить доступ к репозиторию CodeCommit (в этом случае пытаясь протолкнуть) и получите "Отказано в доступе".

Git + SSH выход

Вот что я получаю от SSH с журналированием DEBUG3:

debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /c/Users/Dan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 535
debug2: input_userauth_pk_ok: fp SHA256:<omitted>
debug3: sign_and_send_pubkey: RSA SHA256:<same-as-above>
debug1: Authentications that can continue: publickey
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
fatal: Could not read from remote repository.

Для сравнения вот что я получаю, используя те же SSH-ключи для GitHub:

debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /c/Users/Dan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 535
debug2: input_userauth_pk_ok: fp SHA256:<same-as-above>
debug3: sign_and_send_pubkey: RSA SHA256:<same-as-above>
debug1: Authentication succeeded (publickey).
Authenticated to github.com ([192.30.252.130]:22).

Приведенный выше вывод получен при запуске обычной команды git, такой как git push origin master с включенным ведением журнала отладки ssh в .ssh/config:

Host git-codecommit.us-east-1.amazonaws.com
  LogLevel DEBUG3

Host github.com
  LogLevel DEBUG3

9 ответов

Решение

Похоже, вы пропустили шаг в настройке SSH. Вам нужно добавить эту информацию в ваш файл.ssh/config:

Host git-codecommit.us-east-1.amazonaws.com
   User Your-SSH-Key-ID, such as APKAEIBAERJR2EXAMPLE
   IdentityFile Your-Private-Key-File, such as ~/.ssh/codecommit_rsa or ~/.ssh/id_rsa

Ваш-SSH-Key-ID можно получить с консоли IAM.

Попробуйте использовать sshkey-ID при создании git clone

Итак, git clone должен выглядеть так:

      git clone ssh://<SSHKEY-ID>@git-codecommit.<REGION>.amazonaws.com/v1/repos/<REPO-NAME>

Мой случай был немного другим.

На вкладке "Учетные данные безопасности" есть как "Ключи доступа", так и "Ключи SSH для AWS CodeCommit". Убедитесь, что вы используете идентификатор ключа CodeCommit.

Это сработало

Host git-codecommit.us-west-2.amazonaws.com
    User SSHKEYID
    IdentityFile ~/.ssh/id_rsa

Следуйте следующей документации от AWS

Linux

      https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html

Окна

https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-windows.html

Я тестировал настройку SSH-соединения только для Windows, пожалуйста, проверьте SSH-соединение для Linux, перейдя по указанной выше ссылке;

Ниже приведены шаги по настройке SSH-соединения для codecommit в Windows 10.

Шаг 1

Начальная конфигурация для CodeCommit (см. Ссылку на документацию)

Шаг 2

Установите Git (см. Ссылку на документацию)

шаг 3

Сгенерируйте ключ ssh, выполнив следующую команду:

      ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

после выполнения этой команды он должен сгенерировать открытый ключ (.pub) и закрытый ключ в каталоге C: \ Users {имя пользователя здесь} .ssh

Шаг 4

Войдите в консоль управления aws и перейдите в IAM -> Пользователи -> Выбрать целевого пользователя -> Вкладка Учетные данные безопасности -> Ключи SSH для AWS CodeCommit и нажмите Загрузить ключ ssh. Скопируйте и вставьте содержимое открытого ключа, например C: \ Users {имя пользователя} .ssh \ id_rsa.pub, и сохраните изменения. Но вы можете выбрать другое имя для вашего ключа publc (id_rsa.pub) при использовании команды ssh-keygen -t rsa -b 4096 -C "your_email@example.com".

шаг 5:

после загрузки открытого ключа скопируйте идентификатор ключа SSH.

ШАГ 6

создайте файл C: \ Users {здесь имя пользователя} .ssh \ config (без расширения файла, в Windows сохраните его как config и выберите опцию всех типов файлов. Config.txt, скорее всего, не будет работать). вставьте следующее содержимое в файл C: \ Users {здесь имя пользователя} .ssh \ config:

      Host git-codecommit.*.amazonaws.com
  User {copy SSH key ID here}
  IdentityFile ~/.ssh/{copy name of the public key here }
  
Host git-codecommit.*.amazonaws.com
  User THISISEXMAPLE123
  IdentityFile ~/.ssh/id_rsa
  

Шаг 7.

        git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo

Убедитесь, что файл конфигурации не сохранен как файл txt и используйте идентификатор ключа SSH, а не доступ

Изменения в конфигурации ядра AWS различаются. Возможно, вы правильно настроите все конфигурации, но у вас все еще будут проблемы с подключением. Чтобы быть прямым и явным.

Попробуйте изменить исходный URL-адрес git по умолчанию со старого на <KEY_ID>@git-codecomitxxxxxxxx/v1/repos/xxxxx, убедитесь, что ключевые службы являются пользователем-владельцем репозитория.

и снова нажать.

В моем случае я настроил~/.ssh/configследующим образом

      Host remote
  HostName  git-codecommit.us-east-1.amazonaws.com
  User APLAY5AJ2VA0XEXAMPLE
  IdentityFile ~/.ssh/id_rsa

и я пробовал клонировать с помощью команды

      git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/repo-name

и привело к отказу в разрешении.

но выполнив следующую команду, я выполнил задание.

      git clone ssh://remote/v1/repos/repo-name

Проблема заключается в том, что Windows автоматически сохраняет файл конфигурации как config.txt на шагах 8–9 документации AWS.

https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-windows.html?icmpid=docs_acc_console_connect_np#setting-up-ssh-windows-keys-windows

Вы можете преодолеть это, следуя инструкциям ниже

  1. Откройте cmd
  2. cd Users\Mr.S>cd C:\Users\Mr.S.ssh (Здесь вы переходите в каталог .ssh, где находится файл config.txt)
  3. Введите copy config.txt config (здесь вы конвертируете файл config.txt в файл конфигурации с помощью функции копирования

После того, как вы сделали все вышеперечисленное, переходите к следующему шагу.

Другие вопросы по тегам