Я клонировал свой репозиторий git через ssh. Таким образом, каждый раз, когда я общаюсь с мастером оригинала нажатием или вытягиванием, мне приходится повторно вводить свой пароль. Как я могу настроить git, чтобы мне не нужно было вводить пароль несколько раз?
197
Ответы:
Попробуйте
ssh-add
, вам нужноssh-agent
запустить и держать свой закрытый ключ(Хорошо, отвечая на обновленный вопрос, вы сначала запускаете
ssh-keygen
генерацию открытого и закрытого ключа, как объяснил Джефроми . Вы помещаете открытый ключ на сервер. Вы должны использовать фразу-пароль, если у вас нет эквивалента простого -текстовый пароль в вашем личном ключе. Но когда вы это сделаете, вам понадобится на практике, как описано ниже.)ssh-agent
Вы хотите работать
ssh-agent
в фоновом режиме при входе в систему. Как только вы входите в систему, идея состоит в том, чтобы запускатьсяssh-add
один раз и только один раз, чтобы дать агенту вашу фразу-пароль для декодирования вашего ключа. Затем агент просто сидит в памяти с разблокированным и загруженным ключом, готовым к использованию каждый раз, когда вы где-то работаете в ssh.Все команды ssh-family 1 будут обращаться к агенту и автоматически смогут использовать ваш закрытый ключ.
В системах OSX (err, macOS ), GNOME и KDE
ssh-agent
обычно запускается автоматически. Я расскажу подробности на тот случай, если, как и я, у вас также есть Cygwin или другая среда Windows, где это наверняка не сделано для вас.Начало здесь:
man ssh-agent
.Существуют различные способы автоматического запуска агента. Как объясняется на странице руководства, вы можете запустить ее так, чтобы она была родительской для всех других процессов сеанса входа в систему. Таким образом, переменные окружения, которые он предоставляет, будут автоматически присутствовать во всех ваших оболочках. Когда вы (позже) вызовете
ssh-add
илиssh
оба будете иметь доступ к агенту, потому что у них всех есть переменные окружения с волшебными именами сокетов или чем-то еще.В качестве альтернативы вы можете запустить агент как обычный дочерний процесс, сохранить параметры среды в файле и при загрузке поместить этот файл в каждую оболочку.
Мои системы OSX и Ubuntu автоматически выполняют настройку запуска агента, поэтому все, что мне нужно сделать, это запустить
ssh-add
один раз. Попробуйте запуститьssh-add
и посмотреть, если это работает, если это так, то вам просто нужно сделать это один раз за перезагрузку.Моя система Cygwin необходимо сделать это вручную, так что я сделал это в моей
.profile
и у меня есть.bashrc
источник.profile
:.agent
Файл создается автоматически с помощью сценария; он содержит определения и экспорт переменных среды. Вышеприведенное пытается получить исходный файл .agent, а затем пытается выполнитьps(1)
агент. Если это не работает, он запускает агент и создает новый файл агента. Вы также можете просто запуститьssh-add
и, если это не удается запустить агент.1. И даже локальный и удаленный
sudo
с правильным расширением pam.источник
ssh-agent
его, вероятно,eval `ssh-agent`
У меня была похожая проблема с GitHub, потому что я использовал протокол HTTPS. Чтобы проверить, какой протокол вы используете, просто запустите
и посмотрите на строку, начинающуюся с
remote.origin.url
. Для переключения вашего протоколаисточник
Permission denied
ошибкой.git remote set-url origin git@github.com:your_username/your_project.git
Это касается настройки ssh, а не git. Если вы этого еще не сделали, вам следует использовать
ssh-keygen
(с пустой парольной фразой) для создания пары ключей. Затем вы копируете открытый ключ в удаленный пункт назначения с помощьюssh-copy-id
. Если вам не нужны несколько ключей (например, более безопасный с парольной фразой для других целей) или если у вас есть несколько странных вещей с множеством идентификаторов, это просто:Редактировать: Вы действительно должны просто прочитать ответ DigitalRoss, но: если вы используете ключи с парольными фразами, вам нужно будет использовать их,
ssh-add <key-file>
чтобы добавить ихssh-agent
(и, очевидно, запустить,ssh-agent
если в вашем дистрибутиве его еще нет).источник
ssh-agent
поскольку он хочет обойти проблему ввода-пароля-каждый раз. Не понижение голоса, но я думаю, что вам нужно улучшить этот ответ, если только я не тот, кто неправильно понял ...ssh-agent
. +1 тебе!ssh-*
вызывает кодовую фразу, необходимую для использования ключа - где вы действительно имели в виду свой действительный пароль пользователя на пульте?Убедитесь, что когда вы клонировали репозиторий, вы сделали это с помощью URL-адреса SSH, а не HTTPS; в поле URL-адрес клона репозитория выберите протокол SSH перед копированием URL-адреса. Смотрите изображение ниже:
источник
Если вы клонировали с использованием HTTPS (рекомендуется), то:
а потом
timeout = 2592000 (30 дней в секундах), чтобы включить кэширование на 30 дней (или все, что вам подходит).
Теперь запустите простую команду git, которая требует вашего имени пользователя и пароля.
Введите свои учетные данные один раз, и теперь кэширование включено на 30 дней.
Попробуйте еще раз с любой командой git, и теперь вам не нужны никакие учетные данные.
Для получения дополнительной информации: - Кэширование вашего пароля GitHub в Git
Примечание : вам нужен Git 1.7.10 или новее, чтобы использовать помощник по учетным данным. При перезагрузке системы нам, возможно, придется ввести пароль еще раз.
источник
Расширение мыслей Мейна для тех, кто предпочитает редактировать файлы напрямую, используя команды в git-bash или терминале.
Перейдите в каталог .git вашего проекта (корневой каталог проекта на вашем локальном компьютере) и откройте файл 'config'. Затем найдите [remote "origin"] и установите конфигурацию URL следующим образом:
источник
Я думаю, что здесь есть две разные вещи. Во-первых, обычная проверка подлинности SSH требует от пользователя ввода пароля учетной записи (где пароль учетной записи будет проверяться разными способами, в зависимости от конфигурации sshd).
Вы можете избежать ввода этого пароля с помощью сертификатов. С сертификатами вам все равно придется вводить пароль, но на этот раз это пароль вашего закрытого ключа (он не зависит от пароля учетной записи).
Для этого вы можете следовать инструкциям, указанным steveth45:
Если вы не хотите каждый раз вводить пароль сертификата, вы можете использовать ssh-agent, как указывает DigitalRoss
Единственная проблема ssh-agent заключается в том, что, по крайней мере, в * nix вы должны ставить пароль сертификатов в каждую новую оболочку. Затем сертификат «загружается», и вы можете использовать его для аутентификации на сервере ssh без ввода какого-либо пароля. Но это именно на этой оболочке.
С брелок вы можете сделать то же самое, что и ssh-agent, но "для всей системы". Как только вы включаете компьютер, вы открываете оболочку и вводите пароль сертификата. И затем, каждая другая оболочка будет использовать этот «загруженный» сертификат, и ваш пароль больше никогда не будет запрашиваться, пока вы не перезагрузите компьютер.
В Gnome есть похожее приложение под названием Gnome Keyring, которое запрашивает пароль вашего сертификата при первом использовании, а затем надежно сохраняет его, чтобы вас больше не спрашивали.
источник
AddKeysToAgent yes
в .ssh / config. Затем его загружают в память, пока вы не выключите компьютерЕсли вы используете github, у них есть очень хороший учебник, который объясняет это более четко (по крайней мере для меня).
http://help.github.com/set-up-git-redirect/
источник
Когда вас спросят о ключевой фразе, оставьте это поле пустым, т.е. просто нажмите Enter. так просто, как, что!!
источник
Попробуйте это из коробки, из которой вы толкаете
Затем вы должны получить приветственный ответ от GitHub, и тогда будет хорошо, чтобы потом нажать.
источник
Hi gkucmierz! You've successfully authenticated, but GitHub does not provide shell access.
но каким-то образом git все еще спрашивает у меня пароль, когда я пытаюсь нажатьМне пришлось клонировать git-репозиторий с сервера, который не разрешал вход в систему через ключ ssh, а только с именем пользователя / паролем. Я не нашел способа настроить плагин Git для использования простой комбинации пользователя и пароля, поэтому я добавил следующую команду оболочки в качестве шага предварительной сборки на машине сборки linux, которая зависит от ожидаемого инструмента (apt-get install Ожидается):
ЭТО НЕ ХОРОШИЙ СПОСОБ РЕШЕНИЯ ЭТОЙ ПРОБЛЕМЫ, ТАК КАК ВАШ ПАРОЛЬ ПОКАЗЫВАЕТСЯ ЧЕТКОЙ ТЕКСТ В КОНФИГУРАЦИИ И ЖУРНАЛАХ JENKINS JOB! ТОЛЬКО ИСПОЛЬЗУЙТЕ ЕГО, ЕСЛИ НЕТ СПОСОБА НАСТРОИТЬ АУТЕНТИФИКАЦИЮ RSA-KEY ИЛИ ДРУГОЙ КОНФИГУРАЦИИ!
источник
Добавьте одну строку
AddKeysToAgent yes
в верхней части файла .ssh / config. Конечно, ssh-agent должен быть запущен заранее. Если он не работает (проверьтеprep ssh-agent
), просто запустите егоeval $(ssh-agent)
Теперь ключ загружается в память по всей системе, и вам не нужно снова вводить парольную фразу.
Источник решения: /ubuntu/362280/enter-ssh-passphrase-once/853578#853578.
источник
Я пытаюсь избежать ввода ключевой фразы все время, потому что я использую ssh на окнах. Что я сделал, так это изменил свой файл .profile, чтобы я вводил один пароль в конкретном сеансе. Так что это кусок кода:
так что с этим я набираю свой пароль один раз в сеансе ..
источник
Я перепробовал все эти предложения и многое другое, просто для того, чтобы я мог получить клон из моего экземпляра AWS. Ничего не получалось. Я наконец-то обманул отчаяние: я скопировал содержимое id_rsa.pub на свой локальный компьютер и добавил его в ~ / .ssh / known_hosts на моем экземпляре AWS.
источник