1

Не могу сделать push в гитхаб из колаба.

Вот что делаю:

!git config --global user.email "моя_почта@gmail.com"
!git clone https://github.com/мой_аккаунт/мой_репозиторий.git
# вношу изменения
!git add .
!git commit -m 'Внёс какие-то изменения'
!git push origin main

Появляется ошибка:

fatal: could not read Username for 'https://github.com': No such device or address

Я создал пару ssh ключей, содержимое pub добавил в ключи в аккаунте гитхаба, пробую в колабе

!eval $(ssh-agent -s)
!ssh-add ~/.ssh/id_rsa

Снова ошибка:

Agent pid 15997
Could not open a connection to your authentication agent.

Я выяснил, что это из-а того, что SSH Agent не запущен. Но он ведь запустился как 15997, а вот с ключом проблемы.

В чём может быть проблема?

задан 12 нояб. 2024 в 6:59
3
  • 1
    Вместо запуска агента прописывайте ключи в конфиге ssh. Commented 12 нояб. 2024 в 7:09
  • Спасибо, помогло! Пришлось создать этот config, потом ещё known_hosts, автоматически ключи не добавлялись в этот файл, нашёл в интернете строки для гитхаба. Клонировал репозиторий, внёс изменения и успешно запушил)) спасибо ещё раз Commented 12 нояб. 2024 в 7:57
  • 2
    @Irking Оформите сами ответ на свой вопрос с понятным описанием, что вы делали. Я думаю, кому-то ещё может пригодится. Commented 12 нояб. 2024 в 8:06

1 ответ 1

2

По совету @user7860670 и @CrazyElf

Надо связать google colab и github. Я сделал с помощью SSH ключей.

Сгенерировал ключи:

!ssh-keygen -t rsa -b 4096 -C "any_keys"

введите сюда описание изображения По умолчанию, ключи будут сохранены в директорию root/.ssh. Нажмите Enter, чтобы принять стандартную директорию, или введите новое местоположение, если требуется (указанный каталог должен существовать). Затем будет предложено ввести кодовую фразу (passphrase) и повторить, а можно оставить пустой её, нажать Enter и продолжить настройку.

Открываем настройки (Settings) аккаунта Github -> вкладка SSH and GPG keys -> кнопка New SSH key.

введите сюда описание изображения

В первое поле вводим любое имя для ключа, второе оставляем без изменений, а в третье вставьте содержимое файла id_rsa.pub. Сохраните ключ (Add SSH key).

Затем в root/.ssh надо создать файлы config и known_hosts

!touch config
!touch known_hosts

Открываем config в любом текстовом редакторе и добавляем туда следующее:

Host github.com
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa
 IdentitiesOnly yes

Это конфигурация для подключения к GitHub через SSH.

Открываем known_hosts в любом текстовом редакторе и добавляем туда следующее:

github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=

Эти строки представляют собой публичные ключи для серверов GitHub, используемые для аутентификации пользователей при подключении через SSH. Теперь при подключении к GitHub Ваш SSH-клиент будет знать эти ключи и сможет безопасно устанавливать соединение.

Готово.

Говорят, что команда ssh github.com автоматически добавляет информацию в config, а ещё есть аналогичная команда для формирования known_hosts. Но у меня эти команды не прошли. Вероятно, проблема в специфике колаба, а может я что-то не так сделал.

ответ дан 12 нояб. 2024 в 10:38

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.