Настроить SSH-агент для git
Я не хочу вводить свой пароль ssh каждый раз, когда я делаю git push или git pull в / из удаленного репозитория, к которому у меня есть доступ через ssh (вход через имя пользователя и пароль).
ssh-agent
git config --global credential.helper 'cache --timeout=3600'
Не работает Мне все еще нужно вводить пароль каждый раз, когда я хочу нажать / вытащить.
Что еще мне нужно сделать, чтобы это работало?
Если я выполню
ssh-agent bash
и затем попробуйте дважды нажать на тот же терминал, мне все равно придется дважды вводить пароль.
2 ответа
О, я неправильно понял работу агента SSH. Я использую имя пользователя и пароль. Могу ли я хранить свой пароль только в оперативной памяти? Я не хочу, чтобы он просто валялся в моей домашней папке. - UTF-8
Нет с openssh
стандартные инструменты. SSH-агент предназначен для ключей, которые добавляются перед использованием (теперь их можно добавлять и при первом использовании, но это уже другая история).
Если вы хотите, чтобы он мог передавать пароли, есть sshpass
, который может читать пароли из переменных среды, но учтите, что это, конечно, не рекомендуется с точки зрения безопасности. Если вы заботитесь о безопасности, настройте аутентификацию с открытым ключом.
ssh-agent
Необходимо предоставить переменные для вашей среды, поэтому правильный способ их использования:
eval $(ssh-agent)
тогда вы можете использовать ssh-add
добавить ключи к вашему агенту. Читать man ssh-agent;man ssh-add
,
Например (YMMV):
w3@aardvark:~(0)$ env | grep SSH
SSH_AUTH_SOCK=/run/user/1003/keyring-ozv0oa/ssh
w3@aardvark:~(0)$ eval $(ssh-agent)
Agent pid 26624
w3@aardvark:~(0)$ env | grep SSH
SSH_AGENT_PID=26624
SSH_AUTH_SOCK=/tmp/ssh-FUVLa89gGIpt/agent.26623
w3@aardvark:~(0)$ ssh-add -l
The agent has no identities.
w3@aardvark:~(1)$ ssh-add
Enter passphrase for /home/w3/.ssh/id_rsa:
Identity added: /home/w3/.ssh/id_rsa (/home/w3/.ssh/id_rsa)
w3@aardvark:~(0)$ env | grep SSH
SSH_AGENT_PID=26624
SSH_AUTH_SOCK=/tmp/ssh-FUVLa89gGIpt/agent.26623
w3@aardvark:~(0)$ ssh-add -l
2048 a7:56:f0:86:ab:d3:ec:56:3c:84:05:9e:61:38:a9:7b /home/w3/.ssh/id_rsa (RSA)
w3@aardvark:~(0)$