Я несколько «мирился» с Github, всегда спрашивая мое имя пользователя и пароль, когда я клонировал репозиторий. Я хочу обойти этот шаг, потому что это раздражает в моем рабочем процессе.
Я попытался настроить ключ SSH (что я успешно сделал), используя это руководство. https://help.github.com/articles/generating-ssh-keys и я добился успеха.
Моя проблема в том, что меня все еще спрашивают мой пароль и пароль github при клонировании репозитория (используя SSH). Насколько я понимаю, после того, как я настроил этот SSH-ключ, мне больше не нужно это делать.
Я немного не уверен, что спросить, поэтому я просто изложу свою цель.
Я хочу иметь возможность клонировать репозитории без необходимости постоянно вводить информацию о Github .
Чего мне не хватает с моим ключом SSH? Если кто-то может предоставить некоторые рекомендации или ресурсы, я был бы признателен, потому что я всегда чувствовал себя немного потерянным, когда дело доходит до аутентификации SSH в GitHub.
Насколько мне известно, это команда, которая проверяет, что все работает правильно, вот вывод из моей консоли:
~ $ ssh -T git@github.com
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.
Когда я ввожу свой пароль, это должно произойти сначала? Затем, когда я ввожу свою фразу-пароль, она проходит.
pageant
, который является частьюputty
. Во всех этих случаях цель одна и та же: вы вводите парольную фразу только один раз после запуска ПК, агенты менеджера ключей передают ее в ssh при последующем использовании до перезагрузки.Ответы:
Если вы работаете с
HTTPs
URL, он всегда будет спрашивать ваше имя пользователя / пароль.Если вы правильно используете
SSH
при клонировании / настройке пультов. Затем убедитесь, что у вас есть ssh-agent, чтобы запомнить ваш пароль. Таким образом, вы будете вводить парольную фразу только один раз в терминальной сессии.Если это все еще слишком раздражает, тогда просто установите ssh-ключ без ключевой фразы.
источник
git remote -v
. Чтобы переключиться с https на ssh:git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
Добавить личность без брелка
В некоторых случаях вы не хотите, чтобы фраза-пароль сохранялась в цепочке для ключей, но вам не нужно вводить фразу-пароль снова и снова.
Вы можете сделать это так:
Это попросит вас ввести ключевую фразу, введите ее, и она не будет запрашивать снова, пока вы не перезапустите.
Добавить личность используя брелок
Как отмечает @dennis в комментариях, чтобы сохранить фразу-пароль при перезапуске, сохранив ее в цепочке для ключей, вы можете использовать эту
-K
опцию (-k
для Ubuntu) при добавлении идентификатора, например так:Еще раз, это спросит вас о парольной фразе, введите ее, и на этот раз она никогда больше не будет запрашивать эту личность.
источник
-K
опцию для сохранения ключевой фразы в цепочке для ключей при ее добавлении, напримерssh-add -K ~/.ssh/id_rsa
-k
для меня ... (база Linux Mint / Ubuntu 14.04) но да! наконец-то отсортировал это ...ssh-add
автоматически добавит~/.ssh/id_rsa
(среди других файлов). И нет причин отправлять вывод/dev/null
; гораздо лучше увидеть отчет о том, что он сделал.В Mac OSX вы можете добавить свой закрытый ключ в цепочку для ключей, используя команду:
Если ваш закрытый ключ хранится в ~ / .ssh и называется id_rsa:
Затем вам будет предложено ввести пароль, который будет храниться в вашей цепочке для ключей.
Изменить - Ручка перезапуска
Чтобы не нужно было вводить пароль даже после перезапуска, добавьте следующее в файл конфигурации ssh (обычно находится в ~ / .ssh / config)
источник
~/.ssh
Я попробовал все ответы здесь, и ни один из этих ответов не сработал ! Мой пароль не будет сохраняться между сессиями / перезагрузками моего Mac.
Из этого OpenRadar и этого обсуждения в Твиттере я узнал, что Apple намеренно изменила поведение ssh-agent в macOS 10.12 Sierra, чтобы больше не загружать предыдущие ключи SSH автоматически. Чтобы сохранить то же поведение, что и в El Cap, я сделал следующее:
ssh-add -K ~/.ssh/id_rsa
Примечание: измените путь к месту, где находится ваш ключ id_rsa.
ssh-add -A
Создайте (или отредактируйте, если он существует) следующий
~/.ssh/config
файл:И теперь мой пароль запоминается между перезагрузками моего Mac!
источник
ssh-add -A
это не нужно, если у вас есть только одна клавиша в~/.ssh/id_rsa
)Вы можете удалить ключевую фразу для ключа
или вы можете запустить
вы получите подсказку для ключевого файла. По умолчанию это
~/.ssh/id_rsa
так, нажмите EnterВам будет предложено ввести текущую пароль.
Затем появится запрос новой парольной фразы, нажмите ввод
источник
-K
,-k
,-A
не работает для меня).Просто запустите следующую команду:
Он никогда не попросит вас снова ввести пароль.
источник
ssh-add
просто «добавляет идентификаторы закрытого ключа в агент аутентификации», а-K
опция просто делает это так: «При добавлении идентификаторов каждая ключевая фраза также будет храниться в цепочке ключей пользователя».Убедитесь, что вы используете ssh для своего хранилища.
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin git@github.com:eMahtab/jenkins-cje-2017.git (fetch) origin git@github.com:eMahtab/jenkins-cje-2017.git (push)
Не используйте https, если ваш пульт использует https, он будет запрашивать пароль, даже если вы добавили открытый ключ в Github и добавили закрытый ключ в ssh-agent. Ниже всегда будет спрашивать пароль
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)
источник
git pull
иgit push
. Я переключил свой URL с типа HTTPS на тип SSH, и это сработало -git pull
перестал запрашивать пароль.git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
Я должен был выполнить:
Примечание : вам придется делать это снова после каждого перезапуска. Если вы хотите избежать этого, то введите его в свой файл .bashrc, который находится в
C:\Users\<<USERNAME>>\.bashrc
Windows. Вероятно, он скрыт, поэтому убедитесь, что вы видите скрытые файлы.Решение найдено здесь .
источник
Если вы используете Windows, это работает для меня:
Во второй команде будет запрошена фраза-пароль, и все.
источник
Проверьте оригинальный ответ StackExchange здесь
источник
Попробуйте,
ssh-agent
как там объясняется: https://help.github.com/articles/working-with-ssh-key-passphrasesисточник
Недавно я обновил MacOS до Mojave и установил некоторые инструменты с помощью homebrew, который, похоже, поменял версию Apple
ssh-add
на другую. Моя версия по умолчаниюssh-add
не имела-K
опции. Это привело к следующей ошибке:# ssh-add: illegal option -- K
Вы можете увидеть, какая у
ssh-add
вас версия , запустивwhich ssh-add
.(Шахта хранилась в
/usr/local/bin/ssh-add
)Чтобы это исправить, мне пришлось указать ключ к версии Apple :
Git / GitHub отлично работал потом. Для получения дополнительной информации см .: Ошибка: ssh-add: недопустимая опция - K
источник
Для Mac OSX Sierra я обнаружил, что исправления, предложенные в выпуске github для Open Radar, исправили мою проблему. Похоже, Сьерра изменила поведение по умолчанию (у меня возникла эта проблема после обновления).
Этот, который я нашел особенно полезным: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061
Это привело к тому, что моя личность была добавлена к агенту после того , как я побежал
Подводя итог, в OSX.12:
должно привести к:
РЕДАКТИРОВАТЬ: я заметил в следующий раз, когда я сделал полную перезагрузку (он же агент остановил и перезапустил), это больше не работает. Более полное решение - то, что @ChrisJF упомянул выше: создание
~/.ssh/config
файла. Вот мой вывод:Вы можете добавить столько
IdentityFile
записей, сколько вам нужно, но это настройка по умолчанию. Это «трендовый» ответ по открытой ссылке выше, банкомат, а также.источник
Работал в LinuxMint / Ubuntu
Сделайте следующие шаги
Шаг 1:
Сохраните следующие строки в файл
Шаг 2:
Откройте терминал и добавьте набор ключей в ssh-add
предоставить пароль.
источник
Я уже установил парольную фразу, но по какой-то причине он больше не узнает ее. Поэтому я просто добавил файл идентификации в свою связку ключей снова,
ssh-add -K
и он перестал запрашивать мой пароль.источник
Вот что сработало для меня:
источник
Кажется, проблема в том, что вы клонируете из HTTPS, а не из SSH. Я попробовал все другие решения здесь, но все еще испытывал проблемы. Это сделало это для меня.
Используя
osxkeychain helper
вот так:Узнайте, установлен ли он у вас.
git credential-osxkeychain
Если он не установлен, вам будет предложено загрузить его как часть инструментов командной строки Xcode.
Если он установлен, скажите Git использовать его
osxkeychain helper
с помощью глобальнойcredential.helper
конфигурации:git config --global credential.helper osxkeychain
В следующий раз, когда вы клонируете URL-адрес HTTPS, вам будет предложено ввести имя пользователя / пароль и предоставить доступ к цепочке ключей OSX. После того, как вы сделаете это в первый раз, он должен быть сохранен в вашей цепочке для ключей, и вам не придется вводить его снова.
источник
Этот ответ в первую очередь предназначен для пользователей Windows, а также в равной степени актуален, если у вас возникают проблемы с клонированием с помощью tfs, github или gitlab в любой другой ОС.
Режим аутентификации по умолчанию при использовании SSH - закрытый ключ. Всякий раз, когда по какой-либо причине это не удается, ssh-agent возвращается к аутентификации на основе имени пользователя и пароля.
Существует несколько причин, по которым аутентификация на основе ключей по умолчанию могла быть неудачной. Ниже приведены наиболее распространенные случаи:
a) ssh-agent не может найти файл закрытого ключа по умолчанию, который является id_rsa , и никакой другой путь ключа не указан явно.
б) открытый ключ хранится на сервере неверно.
в) путь, который вы пытаетесь клонировать, неверен.
В любом случае, для устранения проблемы прежде всего выполните команду git clone с подробным ведением журнала командой:
Вы можете пройти каждый шаг в журнале, чтобы понять, в чем проблема.
Устранение неполадок в случае (а)
Если вы хотите указать другой ключ для аутентификации, используйте следующую команду:
Устранение неполадок в случае (б)
Устранение неполадок в случае (с)
источник
Если вы используете ssh url для git, при запросе пароля для ssh укажите имя пользователя как « git », а пароль - как пароль для входа в систему.
источник
HTTPS
дляSSH
решить мою проблему. Спасибо @MichaelR, ваша статья была действительно полезной, хотя я ничего не читал из нее: DЯ хотел бы добавить ответ для тех, кому все еще может потребоваться ввести пароль, потому что они установили IdentitiesOnly как да. Это может быть вызвано несколькими ключами и файлом идентификации, являющимися ключами для git или server.
После того, как я сгенерировал ключ и скопировал его на сервер:
Я обнаружил, что это не сработало.
Затем я пошел, чтобы проверить
~/.ssh/config
файл, я увидел это внизу:Тогда я добавлю это выше:
Я могу просто войти, введя
ssh 12gpu
.Затем вы можете добавить несколько ключей SSH, используя ваши любимые имена, и вам нужно всего лишь добавить настройки, как четыре строки в файле конфигурации.
Хост - это имя, которое вы хотите ввести при последующем подключении к серверу; HostName является IP - сервера или домена , как github.com; Пользователь - это имя пользователя, которое вы регистрируете на сервере, например, имя пользователя или git для github или gitlab; и IdentityFile - это файл, в котором вы храните сгенерированный вами ключ.
источник
Как правило, вот шаги, позволяющие вам сделать удаленное подключение к вашему серверу, используя ssh без пароля:
Создайте пару RSA частного и открытого ключа
Скопируйте ваш открытый ключ и войдите на удаленный сервер.
Добавьте ваш открытый ключ в .ssh / авторизованный_кей
Если у вас есть несколько ключей ssh на вашем компьютере, вы можете добавить свой ключ, используя ssh-add
$ ssh-add /path/to/private/key
Затем попробуйте SSH к вашему серверу
$ ssh username@your_ip_address
Источник: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html
источник
Использовать
ssh
удаленный URL, предоставленный Github, нельзяhttps
.источник
Если вы используете Windows и GIT без сторонних инструментов и ваш ключ не защищен паролем / парольной фразой, используйте это:
Добавьте хост git-сервера в файл config следующим образом:
Сохраните файл и клонируйте репозиторий следующим образом:
git clone ssh: //myhostname.com/git-server/repos/picalc.git
Вы можете использовать дополнительные параметры конфигурации для записи хоста файла "config". Их можно найти в локальной папке установки git, например, « C: \ Program Files \ Git \ etc \ ssh \ ssh_config ». Выдержка:
источник
Та же проблема для меня, и решение было:
Посмотрите этот документ github, чтобы конвертировать URL удаленного из https в ssh. Чтобы проверить, является ли URL пульта ssh или https, используйте git remote -v. Чтобы переключиться с https на ssh: git origin set-url origin git@github.com: USERNAME / REPOSITORY.git @jeeYem
источник
У Mobaxterme был интерфейс для этого
setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]
источник
Ключ SSH - все еще спрашивает пароль и фразу-пароль
Если в Windows использовать PuTTY в качестве генератора ключей SSH , это быстрое и простое решение оказалось для меня единственным работающим решением с использованием простой командной строки Windows:
pageant.exe
иplink.exe
.ppk
расширением"full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"
( необходимо указать). Это запуститpageant
сервис и зарегистрирует ваш ключ (после ввода пароля).GIT_SSH=full\path\to\plink.exe
( не должно быть в кавычках). Это перенаправит команды, связанные с git ssh-communication,plink
которые будут использоватьpageant
сервис для аутентификации без повторного запроса пароля.Выполнено!
Примечание 1: Эта документация предупреждает о некоторых особенностях при работе с
GIT_SHH
настройками переменных среды. Я могуpush
,pull
,fetch
с любым количеством дополнительных параметров в команде и все работает просто отлично для меня (без необходимости писать дополнительный скрипт , как это было предложено в нем).Примечание 2: Путь к
PuTTY
установке обычно указан,PATH
поэтому может быть пропущен. В любом случае, я предпочитаю указывать полные пути.Автоматизация:
Следующий командный файл можно запустить перед использованием git из командной строки. Это иллюстрирует использование настроек:
В любом случае, у меня установлена
GIT_SSH
переменнаяSystemPropertiesAdvanced.exe > Environment variables
иpageant.exe
добавлена в качествеRun
ключа реестра (*).(*) Действия по добавлению
Run
раздела реестра>regedit.exe
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
Edit > New > String Value
Edit > Modify...
(или двойной щелчок)pageant.exe
иpublic key
, например,"C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"
(обратите внимание, что%ProgramFiles%
переменные и т. Д. Здесь не работают, если не выбраныExpandable string value
вместо наString value
шаге 3.).источник
Как объясняется в разделе «Клонирование репозитория Git из VSTS через SSH», запрашивается пароль! непредвиденный
Проблема может быть из-за сбоя аутентификации с открытым ключом, поэтому он запрашивает пароль учетной записи mycompany.
Этого не произойдет, если аутентификация с открытым ключом прошла успешно.
Так что вы можете проверить id_rsa.pub и даже создать новый.
источник
Я думаю, что ответ @sudo bangbang должен быть принят.
Когда вы генерируете ключ ssh, вы просто нажимаете «Enter», чтобы пропустить ввод пароля, когда он предложит вам настроить пароль.
Это означает, что вам НЕ НУЖЕН пароль при использовании ключа ssh, поэтому помните, что при генерации ключа ssh НЕ вводите пароль, просто нажмите «Ввод», чтобы пропустить его.
источник