Git всегда запрашивать ключевую фразу для ключа
У меня была проблема при использовании git
время от времени.
Когда я использую команду git pull origin my_branch
или git fetch
или git push origin my_branch
, git всегда запрашивает пароль для ключевой фразы. И я не поняла почему?
Я надеюсь, что кто-то может объяснить причину и способ избежать ввода пароля каждый раз.
$ git fetch
Enter passphrase for key '/home/khanhpn/.ssh/id_rsa':
Ответы
Ответ 1
Как говорит Насреддин, это потому, что ваш ключ зашифрован парольной фразой, чтобы другие не могли его прочитать.
Наиболее удобный способ использования парольных фраз - использовать ssh-agent
для запуска агента аутентификации (который работает в фоновом режиме):
$ eval "$(ssh-agent)"
Agent pid 44304
... а затем с помощью ssh-add
зарегистрируйте ваш ключ в агенте, чтобы он автоматически использовался для последующих соединений SSH:
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/khanhpn/.ssh/id_rsa:
Вам будет предложено ввести пароль при запуске ssh-add
, но вам не нужно будет делать это снова во время работы ssh-agent
.
Вы можете найти больше информации о GitHub. Также обратите внимание, что вам придется делать это каждый раз, когда вы входите в систему, поэтому вы можете добавить шаг eval "$(ssh-agent)"
в ваш скрипт .profile
.
Ответ 2
Это потому, что ваш частный ключ SSH защищен парольной фразой. Вы можете удалить его с помощью этой команды (не рекомендуется, так как любой может скопировать ваш ключ и использовать его для доступа к вашим репозиториям/учетной записи):
$ ssh-keygen -p
Enter file in which the key is (/path/to/your/.ssh/key):
введите текущую кодовую фразу при появлении запроса:
Enter old passphrase:
Key has comment 'rsa w/o comment'
оставить пустым, если вы хотите удалить кодовую фразу при появлении запроса:
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.