Настройка удаленного git-репозитория на AWS и загрузка из Windows - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь создать удаленный репозиторий в своем экземпляре Ubuntu на AWS, а затем загружаю его из локального репозитория на Windows. Я следовал за уроком здесь .

Я следовал этим точным шагам:

  1. Я создал экземпляр Ubuntu на AWS.
  2. Я сделал ssh-add path/to/myKP.pem. Это дало мне ошибку Could-not-open-a-connection-to-your-authentication-agent.

  3. Затем я запустил этот eval $(ssh-agent) и снова сделал шаг 2. Теперь он сказал Идентичность добавлена ​​.

  4. Я сгенерировал файл .ppk с myKP.pem , а затем использовал его для вставки ssh в мой экземпляр Ubuntu с помощью Putty.

  5. Выполнены следующие команды: apt-get update и apt-get install git-core.

  6. mkdir repo.git и cd repo.git и git init --bare

  7. Затем из моего локального каталога я запустил git init и git add . и git commit -m "Init commit"

  8. git remote add origin ubuntu@publicIP:/repo.git

  9. git config --global remote.origin.receivepack "git receive-pack".

  10. git push origin master.

Тогда я получил эту ошибку:

fatal: 'ubuntu@publicIP/repo.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Может кто-нибудь подсказать, какие шаги я должен выполнить, чтобы создать пустой репозиторий git на моем экземпляре Ubuntu, а затем отправить его из моего локального репозитория.

ПРИМЕЧАНИЕ , что я использую Windows.

Редактировать: Нужно ли сохранять файл .pem на моем экземпляре Ubuntu?

Извините, если это действительно просто для некоторых людей, но я новичок в SSH и AWS.

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Инструкция кажется правильной. Приведенная ниже последовательность шагов должна работать.

EC2 экземпляр

Install git if not available via apt-get (Ubuntu) or yum install (CentOS)
$ mkdir test-repo.git
$ cd test-repo.git
$ git init --bare

Локальная машина ssh-add

Это файл .pem, который был указан при настройке экземпляра EC2. Он не обязательно должен быть в экземпляре EC2.

ssh-add path/to/local/ec2.pem 

Для Windows вы можете загрузить GitHub Desktop для Windows . После того, как вы установили его, ssh-add должен быть доступен. Выполните эти шаги , чтобы добавить файл ec2.pem (закрытый ключ) на вкладку ssh auth agent ( Windows) - Раздел: Добавление вашего SSH-ключа в ssh-agent )

Локальная машина отправляет в хранилище

mkdir test-repo
cd test-repo
git init
echo "This is a test repo" > README.md
git add README.md 
git commit -m "Added readme file"
git remote add origin ec2-user@aws-host-name-or-ip-here:/path/to/test-repo.git
git remote -v #for-verification
git config --global remote.origin.receivepack "git receive-pack"
git push origin master
0 голосов
/ 06 мая 2018

SSH имеет 2 способа входа в систему: либо с помощью комбинации имени пользователя / пароля, либо с помощью комбинации закрытого / открытого ключа. Хорошая особенность открытых / закрытых ключей заключается в том, что после настройки вам не нужно каждый раз вводить имя пользователя / пароль для команд git (когда вы выполняете команду git push / pull для удаленного сервера SSH).

Если вы используете PuTTY, у него есть инструмент puttygen (c: \ Program Files \ PuTTY \ puttygen.exe), который поможет вам сгенерировать ключи на вашем компьютере с Windows. Он имеет 2 кнопки: «Сохранить открытый ключ», чтобы сохранить только ваш открытый ключ в файл типа «DragonBorn.pem». «Сохранить закрытый ключ» означает сохранить открытый и закрытый ключи в одном файле, например «DragonBorn.ppk».

Таким образом, обычно «pem» содержит только открытый ключ, и вам нужно только скопировать этот ключ на сервер (сервер не должен иметь доступа к вашему личному ключу). Если вы добавите свой открытый ключ в список доверенных ключей на сервере (authorized_keys), сервер пропустит вас без пароля.

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

  1. внутри puttygen.exe вверху текстовое поле с надписью "Открытый ключ для вставки ...", скопируйте его.
  2. войдите на ваш SSH-сервер с помощью PuTTY, используя ваше имя пользователя / пароль
  3. открыть файл ~/.ssh/authorized_keys в терминале SSH. Обычно вы можете использовать vim для этого, введите команду: vi ~/.ssh/authorized_keys
  4. вставьте ваш открытый ключ из puttygen в текстовый редактор в терминале SSH. Если вы используете vim, вы сначала нажимаете «i» (это начинает редактирование в vi), а затем делаете правый клик мышью, чтобы вставить (это собственный ярлык PuTTY).
  5. сохраните файл и выйдите. Если вы используете vim, нажмите «escape» (чтобы остановить редактирование), затем удерживайте «shift» и нажмите «z» 2 раза (например, «shift-z-z»).

Теперь сервер настроен.

Это не конец :)) Чтобы настроить клиент, вы должны указать PuTTY использовать ваш личный ключ "DragonBorn.ppk" для входа в систему. Это делается внутри конфигурации PuTTY в категории «Соединение - SSH - Auth» слева, а справа будет «Файл закрытого ключа для аутентификации» - здесь вы указываете свой ppk.

Это не совсем интуитивно понятно, но в PuTTY вы должны сначала выбрать сеанс из списка «Сохраненных сеансов», нажать «Загрузить», затем изменить настройки (например, указать «ppk») и затем перейти вернитесь в «Сеанс» и нажмите «Сохранить» Это сохранит его на будущее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...