- Использование команды git clone с sudo и SSH
- Оглавление
- Почему доступ запрещен
- Решения ошибки
- Передать переменную среды SSH_AUTH_SOCK в терминале
- Создать файл в директории sudoers.d
- Благодарность автору
- Почему не работает git clone при подключении к репозиторию по putty?
- 1 ответ 1
- Почему эта команда git clone не работает?
- Git clone; wget не работают
- Что такое git Clone и как клонировать репозиторий?
- Как работает клонирование в Git?
- Как использовать команду git Clone
- Как клонировать репозиторий или использовать команду git Clone?
- Каковы основные различия между раздвоением и клонированием?
Использование команды git clone с sudo и SSH
Описание и решение проблемы при использовании команды git clone с sudo и ssh.
Оглавление
При попытке клонировать репозиторий через SSH с помощью команды sudo:
Вы скорее всего получите ошибку:
Давайте разберемся почему появляется такая ошибка.
Почему доступ запрещен
Когда вы отправляете SSH запрос на удаленный сервер, удаленный сервер разговаривает с вашим локальным ssh-агентом через сокет, на который ссылается переменная окружения SSH_AUTH_SOCK .
На удаленном сервере вы можете сделать что-то вроде:
И git будет использовать ssh-agent, работающий на вашей локальной машине для аутентификации с помощью github и клонировании указанного репозитория. Но если вы выполните эту же команду с sudo :
То получите ошибку, которую я описал выше.
Это происходит потому что переменные среды недоступны для команд, работающих под sudo .
Решения ошибки
Однако есть способы решения данной проблемы.
Передать переменную среды SSH_AUTH_SOCK в терминале
Можно явно указать переменную среды в команде, при клонировании репозитория:
Создать файл в директории sudoers.d
Однако всегда прописывать эту переменную окружения не очень удобно. Хорошим решением будет создать файл по пути /etc/sudoers.d/99-keep-ssh-auth-sock-env со следующим содержимым:
Редактировать этот файл нужно с помощью команды visudo -f .
После этого можете клонировать репозитории через sudo .
Благодарность автору
Если по какой-либо причине вы хотите поблагодарить автора данного ресурса, вы можете это сделать одним из удобных для вас способов ниже.
Один из самых популярных способов поблагодарить автора, воспользоваться сервисом Яндекс.Деньги.
Источник
Почему не работает git clone при подключении к репозиторию по putty?
Сервер с centos подключается к репозиторию bitbucket по ssh-rsa ключам. Если это делать непосредственно под root’ом на этой машине, то git clone проходит успешно. Если подключиться к машине по putty и попробовать склонировать репозиторий под рутом, появляется сообщение об отказе в правах. Почему так происходит? Как сгенерировать ключи, по которым можно будет работать с гитом под putty?
Permission denied (publickey). fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
/.ssh/id_rsa, то подключение к гиту заработает. Можно ли узнать в каком конфиге указывается имя и путь до ключа, который ищется для путти?
1 ответ 1
ни в коем случае не надо «работать под root-ом». подключаетесь к машине вы, надеюсь, под именем «рядового» пользователя, вот от его имени и надо работать, получая root-овые привилегии лишь для выполнения административных задач.
git clone и тому подобные команды оперируют приватным ключом (в вашем случае — из файла id_rsa ), хранящимся в каталоге .ssh/ в домашнем каталоге пользователя, от имени которого выполняется команда. для пользователя root это обычно каталог /root/.ssh/ . для «рядового» пользователя это обычно /home/пользователь/.ssh/ .
вам надо скопировать файл (в вашем случае /root/.ssh/id_rsa ) в каталог «рядового» пользователя /home/пользователь/.ssh/ . если такого каталога нет, создайте его (от имени пользователя). если каталог уже существует, эта команда не сделают ничего:
если такой каталог уже существовал и в нём уже были файлы id_rsa и id_rsa.pub , на всякий случай переименуйте их (вдруг они нужны для доступа куда-нибудь ещё):
теперь копируем файлы и изменяем их владельца (операция осуществляется от имени root-а, ведь у «рядовых» пользователей нет доступа к его домашнему каталогу):
дальше (уже от имени пользователя) сто́ит [пере]установить права на каталог и его содержимое:
если проделанные операции не помогли, и при выполнении git clone от имени пользователя (при подключении с помощью putty) возникает та же самая ошибка, в первую очередь проверьте значение переменной окружения HOME :
она должна содержать домашний каталог пользователя (обычно: /home/пользователь ). именно на значение этой переменной и «опираются» программы (тот же git) при поиске файлов: если в этой переменной хранится что-то отличное от домашнего каталога, то, например, каталог .ssh (и файлы в нём) будут разыскиваться совсем не там, где следует.
дополнение по поводу использования нестандартного имени (или местоположения) файла с секретным ключом.
например, файл с секретным ключом называется
Источник
Почему эта команда git clone не работает?
Попытка использовать команду git clone . Мое понимание (пожалуйста, исправьте, если не так) было то, что для размещения репозитория Git вам просто нужен компьютер, на котором запущен ssh, и проект/репозиторий, сидящий на нем в разрешенном месте.
У меня есть мой репозиторий Git в системе OS X, в которой выполняется ssh. Я пытаюсь клонировать его в системе Windows XP. У меня есть Git Bash, установленный на компьютере XP. В консоли Git Bash (MINGW) я могу без проблем с ssh в Mac.
Однако git clone выходит из строя.
Пробовал с расширением .git и без него:
Нужно ли мне что-то еще установить на Mac?
Для msysgit использование опции -u для указания пути к git -upload-pack не работает, когда путь включает пробелы, потому что кавычки (одиночные, двойные), похоже, не поддерживаются (1.7.11.msysgit. 1).
Добавление его в мой PATH (C:\Program Files (x86)\ Git\libexec\git -core). [Однако у меня есть дополнительные проблемы с моей настройкой]
У вас должен быть установлен Git на компьютере с репозиторием Git, который вы хотите клонировать; также git-upload-pack должен быть в $PATH на удаленной машине при выполнении ssh. Получаете ли вы что-то вроде следующего ответа при прямом доступе к удаленной машине:
или следующий (неправильный) ответ:
(конечно, имя оболочки зависит от того, что использует удаленная сторона).
То, что также может быть проблемой (хотя, возможно, и не в вашем случае), неправильно сконфигурировало удаленную машину, чтобы использовать интерактивную оболочку для подключения ssh, либо предоставляя некоторые сообщения при подключении, либо устанавливая интерактивные переменные, как печально известную переменную среды $CDPATH.
Я решил проблему, добавив следующую строку в мой файл
/.bashrc на удаленном компьютере:
Проблема заключалась в том, что $PATH не включал /usr/local/ git/bin для неинтерактивных сеансов. Добавление к
/.bashrc исправило эту проблему.
git clone —upload-pack/path/to/ git -upload-pack ssh://user @host/
который работал у меня.
У меня была такая же проблема на mac os, и я решил это, скопировав git -upload-pack из /usr/local/ git/bin в/bin.
У меня была такая же проблема и без удаления устаревшего сертификата все, что печаталось, он начал работать. Единственное, что я сделал по-другому в этот раз, — это переключить Wi-Fi из сети прокси-сервера на мое личное мобильное место. Затем я запускаю команду ниже в терминале
Затем он начал клонирование и запросил пароль.
Я все пробовал, я проверял свои ключи, пути и инструменты. Тем не менее, я не смог клонировать репо из github, используя «git shell» «git gui» и «tortoise git».
Я загрузил и установил «» Инструменты Visual Studio для Git «(который требовал» VS2012 Update 2 CTP») и смог клонировать репо изнутри Visual Studio:
- Нажмите «Главное меню- > Просмотр- > Командный проводник»
Нажмите «Team Explorer- > Connect To Team Projects»
Нажмите «Командный проводник- > Локальный Git Репозитории Раздел- > Клон»
Введите URL-адрес Git Repo to Clone (желтый ящик)
Введите или просмотрите локальную папку для клонирования в
Нажмите «Клонировать»
Через некоторое время репо было клонировано. Я успешно клонировал полдюжины репо таким образом, что msysgit, github и tortoisegit не работали должным образом.
Источник
Git clone; wget не работают
Сделал через puttygen себе ssh ключ, включил его при подключении, но ошибки те же. Я уже не знаю в чем проблема, resolv.conf изменил вместе с интерфейсом на 8.8.8.8 8.8.8.4 я просто не понимаю в чем проблема! 8 часов пытаюсь клонировать, ладно через WinSCP закинул бы, но мне нужно дальше по крону файлы обновлять через git pull.
Добавлено через 24 минуты
Проблему решил, переустановил сервер
Git clone из локальной папки
Добрый день уважаемые, подскажите как правильно написать что бы склонировать репозиторий из.
GIT clone с локальной машины
Всем доброго времени суток! Начал изучать GIT, и в данный момент разбираюсь с работой с.
Не отображается список веток после git clone
После клонирования репозитория с сервера, вывод комманды git branch не отображает никаких веток.
Ошибка ssh ключа при выполнении git clone
Всем привет, На bitbucket я загрузил свой public key в SSH keys на на сервере(Ubuntu 18 Digital.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Траблы с GIT, не работают любые команды с сервером
Порядка недели назад столкнулся с весьма странной проблемой. Сижу под виндой, с гит работал в.
Команда $git init создает .git не в той папке
Привет. Не нашел на форуме раздела, где мог бы задать вопрос по работе git, пишу поэтому сюда.
Чем отличается git merge От git pull
в обоих случаях я забираю изменения в свою ветку. в чем различие?
fatal not a git repository (or any of the parent directories) .git
Вылетает такая ошибка, на всех проектах: fatal not a git repository (or any of the parent.
Источник
Что такое git Clone и как клонировать репозиторий?
«Клонирование» означает создание идентичных особей естественным или искусственным путем.
Клонирование в Git — это процесс создания идентичной копии удаленного репозитория Git на локальную машину.
Когда мы клонируем репозиторий, все файлы загружаются на локальную машину, но удаленный репозиторий git остается неизменным. Внесение изменений и фиксация их в локальном репозитории (клонированном репозитории) никак не повлияет на удаленный репозиторий, который вы клонировали. Эти изменения, внесенные на локальном компьютере, могут быть синхронизированы с удаленным хранилищем в любое время, когда пользователь захочет.
Как работает клонирование в Git?
Многие люди хотят создать общий репозиторий, чтобы позволить команде разработчиков публиковать свой код на GitHub / GitLab / BitBucket и т. д. Репозиторий, загружаемый в сеть для совместной работы, называется вышестоящим репозиторием или центральным репозиторием.
Центральный репозиторий указывает, что все изменения от всех участников помещаются только в этот репозиторий. Таким образом, это самый обновленный экземпляр репозитория самого себя. Иногда это часто называют исходным хранилищем. Изображение, приведенное ниже, довольно ясно говорит о концепции клонирования.
Что касается приведенного выше изображения, то процесс клонирования работает на следующих этапах:
Клонирование репозитория: пользователь начинает работу с вышестоящего репозитория на GitHub. Процесс начинается с клонирования репозитория на локальную машину. Теперь у пользователя есть точная копия файлов проекта в их системе, чтобы внести изменения.
Внесите необходимые изменения: после клонирования участники вносят свой вклад в хранилище. Вклад в виде редактирования исходных файлов, приводящего либо к исправлению ошибки, либо к добавлению функциональности, либо, возможно, к оптимизации кода. Но суть в том, что все происходит в их локальной системе.
Проталкивание изменений: как только изменения будут сделаны, они могут быть перемещены в вышестоящий репозиторий.
Примечание: владелец репозитория может разрешить / запретить прямые изменения в Центральном репозитории, установить различные уведомления о любом изменении, перенесенном в центральное хранилище и многое другое.
Как использовать команду git Clone
Клонирование в Git может быть сделано на собственном репозитории или в любом другом репозитории.
Как клонировать репозиторий или использовать команду git Clone?
Клонирование репозитория из GitHub — это простой процесс. Но, прежде чем клонировать, пожалуйста, убедитесь, что у вас есть репозиторий на вашем аккаунте GitHub.
-
- Чтобы клонировать репозиторий, перейдите на страницу репозитория, которую вы хотите клонировать. Это можно сделать с помощью боковой колонки на приборной панели.
- Нажмите кнопку клонировать или загрузить.
- Скопируйте код, который появляется после нажатия кнопки.
- После этого откройте Git bash в своей системе
- Проверьте каталоги (или репозитории), уже созданные в этом каталоге(используя команду ls). Как видно на рисунке, у меня есть только один репозиторий в каталоге Git Repo ToolsQA.
- Нажмите следующую команду, чтобы клонировать репозиторий:git cloneURL здесь представляет собой тот же URL, который мы скопировали на третьем шаге.
URL — это ссылка на репозиторий GitHub. Вы можете ввести это в адресную строку вашего браузера и проверить, открывается ли страница репозитория или нет.
- При нажатии клавиши enter появится следующее сообщение.
Это займет несколько секунд, чтобы клонировать хранилище в вашей системе.Примечание: обратите внимание, что клонирование зависит от подключения к интернету, а время будет зависеть от пропускной способности вашего соединения. Если Git не может клонировать из-за слабого соединения, он будет отображать фатальную ошибку, и пользователю будет предложено повторить попытку до тех пор, пока вышеуказанное сообщение не появится.
- Подтвердите клонирование, проверив каталоги еще раз с помощью команды ls, которая перечисляет все файлы и папки.
Поскольку Централизованное хранилище в нашем случае называется ToolsQA, то же самое было скопировано на мою локальную машину.Проверьте локальный диск, перейдя к нему вручную.
- Чтобы клонировать репозиторий, перейдите на страницу репозитория, которую вы хотите клонировать. Это можно сделать с помощью боковой колонки на приборной панели.
Каковы основные различия между раздвоением и клонированием?
Чтобы очистить свой разум от воздуха, если он у вас есть, давайте посмотрим, чем отличаются эти два термина:
Разветвление делается на аккаунт github, а клонирование осуществляется с использованием git. При форке репозитория вы создаете копию исходного репозитория (вышестоящего репозитория), но этот репозиторий остается в вашей учетной записи GitHub. В то же время, когда вы клонируете репозиторий, он копируется на вашу локальную машину с помощью Git.
Раздвоение — это понятие, а клонирование — это процесс. Разветвление — это просто содержащая отдельную копию репозитория команда, которая не участвует в этом процессе. Клонирование выполняется с помощью команды «git clone», и это процесс получения всех файлов кода на локальную машину.
В последнем уроке мы познакомились с командой Git fetch и Read more
Источник