Если вы уже достаточно освоили работу с системой контроля версий Git и вас уже стало напрягать постоянное введение имени пользователя и пароля, то пришло время решить и эту проблему. Сегодня мы научимся работать с репо по ssh-соединению.
Создание нового ssh-ключа и добавление ssh-agent достаточно хорошо и понятно расписано на самом GitHub и трудностей здесь возникнуть не должно. Поэтому я не буду на этом останавливаться. Рассмотрим некоторые более сложные вопросы, которые могут возникнуть.
Тема актуальна для пользователей Windows и Git-Bash оболочки.
Для начала стоит проверить существуют ли уже у вас ключи в вашем Git. Для этого вам нужно открыть Git Bash и ввести команду:
Если вы увидите что-то похожее на файлы с такими расширениями, значит ключи уже есть.
id_dsa.pub
id_ecdsa.pub
id_ed25519.pub
id_rsa.pub
В этом случае, нам остается их скопировать и вставить в настройки аккаунта на GitHub.
Для копирования в буфер обмена вводим команду:
Идем в настройки вашего аккаунта:
На боковой панели настроек пользователя нажмите клавиши
Выбираем
В поле «Title» добавьте описательную метку для нового ключа. Например, если вы используете персональный ключ, вы можете назвать этот ключ «Personal Windows Air».
Вставьте свой ключ в поле «Key».
Нажмите кнопку добавить - Add SSH key.
Далее будет предложено, подтвердите свой пароль GitHub.
Идем в корневую директорию вашего Git
В ней нам нужно создать файл .profile с настройками:
Открываем его в любом редакторе и вставляем в него:
Если все прошло успешно, то вы все сделали правильно и теперь у вас есть возможность использовать ssh-доступ к вашим репо. Если же, у вас уже не только существует, но и используется (возможно для отдельно взятого репо) ключ, то вы получите предупреждение розовым цветом вверху страницы.
Для решения этой проблемы, нам нужно найти, где используется (в каком из репо) ключ и удалить его.
Здесь все проще простого. Вводим в Bash
Имя пользователя в ответе - это учетная запись GitHub, к которой в данный момент подключен ключ. Если ответ выглядит как «username / repo», ключ был прикреплен к хранилищу в качестве ключа развертывания.
Идете в это репо и в настройках удаляете ключ.
Если вы все сделали правильно, значит теперь вы сможете получать доступ к репо по ssh-соединению. Для работы со старыми репо, которые установлены у вас на машине, вам стоит переподключить их. Это делается достаточно просто.
Допустим, что я решил поработать с каким-то проектом. Для того, чтобы узнать его репо на gitHub мне достаточно, находясь в папке проекта, ввести в гит следующую команду.
Открыть git-Bash в нужной папке - правая кнопка мыши в нужной папке и выбрать Открыть Git Bash Here
Если ваш репо связан по http- протоколу, то для того, чтобы его переключить на ssh нам нужно, находясь в нужной папке на локальном машине ввести в git-bash следующее.
Вместо выделенного желтым -
Таким простым способом, мы с вами получили доступ по SSH протоколу к нашему GitHub - репо.
Если эта тема для вас интересна, то я могу вам рассказать, как работать с несколькими аккаунтами с одной машины.
Пишите в комментариях, кодируйте и добивайтесь успехов!
Удачного кодирования!
Создание нового ssh-ключа и добавление ssh-agent достаточно хорошо и понятно расписано на самом GitHub и трудностей здесь возникнуть не должно. Поэтому я не буду на этом останавливаться. Рассмотрим некоторые более сложные вопросы, которые могут возникнуть.
Тема актуальна для пользователей Windows и Git-Bash оболочки.
Для начала стоит проверить существуют ли уже у вас ключи в вашем Git. Для этого вам нужно открыть Git Bash и ввести команду:
$ ls -al ~/.ssh
# Команда покажет файлы в вашем каталоге .ssh, если они существуют
# Команда покажет файлы в вашем каталоге .ssh, если они существуют
Если вы увидите что-то похожее на файлы с такими расширениями, значит ключи уже есть.
id_dsa.pub
id_ecdsa.pub
id_ed25519.pub
id_rsa.pub
В этом случае, нам остается их скопировать и вставить в настройки аккаунта на GitHub.
Для копирования в буфер обмена вводим команду:
$ clip < ~/.ssh/id_rsa.pub
# Копирует содержимое файла id_rsa.pub в буфер обмена
# Копирует содержимое файла id_rsa.pub в буфер обмена
Идем в настройки вашего аккаунта:
На боковой панели настроек пользователя нажмите клавиши
SSH и GPG
.
Выбираем
New SSH key or Add SSH key
.
В поле «Title» добавьте описательную метку для нового ключа. Например, если вы используете персональный ключ, вы можете назвать этот ключ «Personal Windows Air».
Вставьте свой ключ в поле «Key».
Нажмите кнопку добавить - Add SSH key.
Далее будет предложено, подтвердите свой пароль GitHub.
Идем в корневую директорию вашего Git
$ cd ~
В ней нам нужно создать файл .profile с настройками:
$ echo '' >> .profile
#создаем пустой файл .profile
Открываем его в любом редакторе и вставляем в него:
env=~/.ssh/agent.env agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; } agent_start () { (umask 077; ssh-agent >| "$env") . "$env" >| /dev/null ; } agent_load_env # agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?) if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then agent_start ssh-add elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then ssh-add fi unset env
Если все прошло успешно, то вы все сделали правильно и теперь у вас есть возможность использовать ssh-доступ к вашим репо. Если же, у вас уже не только существует, но и используется (возможно для отдельно взятого репо) ключ, то вы получите предупреждение розовым цветом вверху страницы.
Error: Key already in use
Для решения этой проблемы, нам нужно найти, где используется (в каком из репо) ключ и удалить его.
Здесь все проще простого. Вводим в Bash
$ ssh -T -ai ~/.ssh/id_rsa git@github.com
# Подключитесь к GitHub используя определенный ключ ssh
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.
# Подключитесь к GitHub используя определенный ключ ssh
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.
Имя пользователя в ответе - это учетная запись GitHub, к которой в данный момент подключен ключ. Если ответ выглядит как «username / repo», ключ был прикреплен к хранилищу в качестве ключа развертывания.
Идете в это репо и в настройках удаляете ключ.
Если вы все сделали правильно, значит теперь вы сможете получать доступ к репо по ssh-соединению. Для работы со старыми репо, которые установлены у вас на машине, вам стоит переподключить их. Это делается достаточно просто.
Допустим, что я решил поработать с каким-то проектом. Для того, чтобы узнать его репо на gitHub мне достаточно, находясь в папке проекта, ввести в гит следующую команду.
git remote -v
Открыть git-Bash в нужной папке - правая кнопка мыши в нужной папке и выбрать Открыть Git Bash Here
Если ваш репо связан по http- протоколу, то для того, чтобы его переключить на ssh нам нужно, находясь в нужной папке на локальном машине ввести в git-bash следующее.
git remote set-url origin git@github.com:username/reponame.git
Вместо выделенного желтым -
git@github.com:username/reponame.git
в примере сверху, вам нужно вставить ссылку на ssh-соединение вашего репо. Её вы можете взять на gitHub вашего репо, нажав на кнопку Clone or download. Выбрать - Use SSH и скопировать ссылку (подчеркнуто на фото).
Таким простым способом, мы с вами получили доступ по SSH протоколу к нашему GitHub - репо.
Если эта тема для вас интересна, то я могу вам рассказать, как работать с несколькими аккаунтами с одной машины.
Пишите в комментариях, кодируйте и добивайтесь успехов!
Материалы по Git, которые могут быть вам интересны:
- "Git - добавление репозитория на GitHub"
- Git - работа с репо без пароля.
- Git - добавление репозитория на GitHub.
- Добавление файлов в существующий репозиторий GitHub.
- Git - Клонирование репозитория GitHub на компьютер.
Хотите освоить самые современные методы написания React приложений? Надоели простые проекты? Нужны курсы, книги, руководства, индивидуальные занятия по React и не только? Хотите стать разработчиком полного цикла, освоить стек MERN, или вы только начинаете свой путь в программировании, и не знаете с чего начать, то пишите через форму связи, подписывайтесь на мой канал в Телеге, вступайте в группу на Facebook.
Удачного кодирования!
Комментариев нет:
Отправить комментарий