Запоминаем пароли к ssh-ключам в ssh-agent
12 мая 2021
Вводить пароли к ssh-ключам того же git каждый раз немного достаёт и неплохо было бы чтобы оно как-то само. Делается при помощи ssh-agent. Примерно так же делается и на Linux-ах и на маке и в Windows с git-bash.
- Добавляем запуск ssh-agent (смотрите ниже) в
.bash_profile
. Скрипт обычно лежит в домашней директории пользователя. В Windows это c:\Users\username. - Идём в конфиг OpenSSH, обычно это
.ssh/config
в домашней директории пользователя. Если запоминать надо пароли ко всем ключам, добавляем тудаAddKeysToAgent yes
первой строкой. Если к отдельным, добавляем в конфиги самих ключей. - Открываем новую консоль. Делаем какое-то действие с запросом пароля, вводим пароль.
- Всё, пароль запомнен, больше спрашивать не будет.
Скрипт для запуска ssh agent:
# start SSH agent SSH_ENV=$HOME/.ssh/environment function start_agent { echo "Initializing new SSH agent..." /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV} echo succeeded chmod 600 ${SSH_ENV} . ${SSH_ENV} > /dev/null /usr/bin/ssh-add; } # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then . ${SSH_ENV} > /dev/null #ps ${SSH_AGENT_PID} doesn't work under cywgin ps -efp ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi
Комментарии RSS по email OK
В keepassxc есть ещё интеграция с агентом (как от openssh, так и putty/kitty). Т.е. храним ключи в базе паролей, при разблокировке базы keepassxc кеширует их в агенте. На windows 10 со встроенным в него ssh тоже работает. Ещё он может быть провайдером так называемой связки ключей в Linux, но это уже другая история.
О, интересно. Надо попробовать.
ubuntu 21, не работает
MAXHO.MACTEP, агент стартовал?
dad@home~>ssh-agent SSH_AUTH_SOCK=/tmp/ssh-foExsFgGy0ZP/agent.42987; export SSH_AUTH_SOCK; SSH_AGENT_PID=42988; export SSH_AGENT_PID; echo Agent pid 42988;