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.