Как указать имя пользователя и пароль при запуске "git clone git@remote.ГИТ"?
Я знаю, как предоставить имя пользователя и пароль для запроса https следующим образом:
git clone https://username:password@remote
но я хотел бы знать, как ввести имя пользователя и пароль к удаленному такой:
git clone [email protected]
Я пробовал так:
git clone username:password@[email protected]
git clone git@username:[email protected]
git clone [email protected]@username:password
но они не работали.
5 ответов:
git clone https://username:[email protected]/username/repository.gitэтот способ работал для меня из репозитория GitHub
редактировать на основе комментария Michael_Scharf:
вы можете оставить пароль, чтобы он не был зарегистрирован в вашем файле истории bash:
git clone https://[email protected]/username/repository.gitон предложит вам ввести пароль
The
user@host:path/to/repoформат говорит Git использовать ssh для входа вhostС логиномuser. Отgit help clone:альтернативный SCP-подобный синтаксис может также использоваться с протоколом ssh:
[user@]host.xz:path/to/repo.git/части до
@- это имя пользователя и способ аутентификации (пароль, открытый ключ и т. д.) определяется ssh, а не Git. Git не имеет возможности передать пароль ssh, потому что ssh может не быть даже использовать пароль, в зависимости от конфигурации удаленного сервера.использовать
ssh-agentчтобы избежать ввода паролей все времяесли вы не хотите вводить свой пароль ssh все время, типичным решением является создать пару открытого и закрытого ключей, поместите открытый ключ в свой
~/.ssh/authorized_keysfile на удаленном сервере и загрузите свой закрытый ключ вssh-agent. Также смотрите настройка Git через SSH для входа в систему один раз,страница справки GitHub на ssh key passphrases,ssh документация gitolite и документация по ssh ключам Heroku.выбор между несколькими учетными записями на GitHub(или Heroku или...)
если у вас есть несколько учетных записей в таком месте, как GitHub или Heroku, у вас будет несколько ключей ssh (по крайней мере один на учетную запись). Чтобы выбрать учетную запись, в которую вы хотите войти, вам нужно скажите ssh, какой закрытый ключ используйте.
например, предположим, что у вас есть две учетные записи GitHub:
fooиbar. Ваш ssh ключ дляfooи~/.ssh/foo_github_idи ваш ssh ключ дляbarи~/.ssh/bar_github_id. Вы хотите получить доступ[email protected]:foo/foo.gitС и[email protected]:bar/bar.gitСbarучетная запись. Вы должны добавить следующий код~/.ssh/config:Host gh-foo Hostname github.com User git IdentityFile ~/.ssh/foo_github_id Host gh-bar Hostname github.com User git IdentityFile ~/.ssh/bar_github_idзатем вы клонируете два репозитория следующим образом:
git clone gh-foo:foo/foo.git # logs in with account foo git clone gh-bar:bar/bar.git # logs in with account barизбегая ssh вообще
некоторые службы предоставляют HTTP-доступ в качестве альтернативы ssh:
GitHub:
https://username:[email protected]/username/repository.gitGitorious:
https://username:[email protected]/project/repository.gitВ Heroku: См.в этой статье.
предупреждение: добавление пароля к URL-адресу клона приведет к тому, что Git сохранит ваш пароль открытого текста в
.git/config. Для безопасного хранения пароля, когда используя HTTP, используйте помощник по учетным данным. Например:git config --global credential.helper cache git config --global credential.https://github.com.username foo git clone https://github.com/foo/repository.gitвышеизложенное заставит Git запрашивать ваш пароль один раз в 15 минут (по умолчанию). Смотрите
git help credentialsдля сведения.
в комментариях @Bassetassen это ответ, @plosco упомянул, что вы можете использовать
git clone https://<token>@github.com/username/repository.gitклонировать из GitHub, по крайней мере. Я думал, что буду расширять о том, как это сделать, в случае, если кто-то столкнется с этим ответом, как я сделал, пытаясь автоматизировать некоторое клонирование.GitHub есть очень удобно руководство о том, как это сделать, но оно не охватывает, что делать, если вы хотите включить все это в одну строку для целей автоматизации. Он предупреждает, что добавление маркера в URL-адрес клона сохранит его в виде открытого текста в
.git/config. Это, очевидно, риск для безопасности почти для каждого случая использования, но поскольку я планирую удалить РЕПО и отменить токен, когда я закончу, мне все равно.1. Создайте токен
GitHub есть все руководство ЗДЕСЬ о том, как получить токен, но вот ТЛ;д-р
- на Настройки > Параметры Разработчика > Персональный Доступ Жетоны (вот прямая ссылка)
- Нажмите кнопку "Создать новый токен" и введите пароль еще раз. (hвот еще одна прямая ссылка)
- установите описание / имя для него, проверьте разрешение "РЕПО" и нажмите кнопку "создать токен" в нижней части страницы.
- скопируйте ваш новый токен прежде чем покинуть страницу
2. Клонировать РЕПО
то же, что и команда @plosco дали,
git clone https://<token>@github.com/<username>/<repository>.git, просто заменить<token>,<username>и<repository>С любой вашей информацией.если вы хотите клонировать его в определенную папку, просто вставить адрес папки в конце вот так:
git clone https://<token>@github.com/<username>/<repository.git> <folder>, где<folder>это, как вы уже догадались, папка клонировать его! Вы можете, конечно, использовать.,..,~и т. д. здесь, как и в других местах.3. Не Оставляйте Следов
не все это может быть необходимо, в зависимости от того, насколько чувствительны, что вы делать есть.
- вы, вероятно, не хотите оставить этот знак висит вокруг если у вас нет намерения использовать его в течение некоторого времени, чтобы вернуться к жетоны страницы и нажмите кнопку Удалить рядом с ним.
- если вам больше не нужно РЕПО, удалите его
rm -rf <folder>.- Если вам нужно РЕПО снова, но не нужно автоматизировать его снова, вы можете удалить пульт дистанционного управления, сделав
git remote remove originили просто удалите маркер, запустивgit remote set-url origin https://github.com/<username>/<repository.git>.- очистите свою историю bash, чтобы убедиться, что токен не остается в журнале. Есть много способов сделать это, см. этот вопрос и этот вопрос. Тем не менее, может быть проще просто добавить все вышеперечисленные команды с пробелом, чтобы предотвратить их сохранение для начала.
обратите внимание, что я не профессионал, поэтому вышеизложенное не может быть безопасным в том смысле, что не останется никаких следов для какой-либо судебной экспертизы работа.
git config --global core.askpassзапустите это сначала перед клонированием таким же образом, должно быть исправлено!

Comments