Всякий раз, когда я ввожу свой пароль, например git
, ssh
, я хочу, чтобы он был запомнен.
Итак, я настроилssh-agent
Я также добавил AddKeysToAgent yes
к~/.ssh/config
Если я ssh-add
сейчас запущу, то все будет хорошо. Но без этого не работает (приходится каждый раз вводить пароль)
Я знаю, что я мог бы добавить ssh-add
в скрипт инициализации, но это не то, что я хочу, так как мне это не нужно каждый день. Я думал, что AddKeysToAgent yes
для этого и есть?
Я запускаю ssh-agent
как службу systemd с SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket
.
обновлять
Для тестирования я удалил службу и SSH_AUTH_SOCK. Перезагрузился и запустил, eval $(ssh-agent)
затем вошел в систему, ssh pi@my-ip
ввел пароль и сделал это снова. Все еще запрашивается пароль. Так что это, похоже, не проблема с systemd.
обновление 2
Перемещение AddKeysToAgent yes
к первой строке исправило проблему с помощью eval.
решение1
хорошо, проблема была в формате ~/.ssh/config
. Это было
Host awesomehost.tld
User user
IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes
Это должно быть либо
Host awesomehost.tld
User user
IdentityFile ~/.ssh/id_rsa
Host *
AddKeysToAgent yes
или
AddKeysToAgent yes
Host awesomehost.tld
User user
IdentityFile ~/.ssh/id_rsa
решение2
В качестве альтернативы запуску службы systemd вы потенциально можете добавить следующий код в скрипт запуска оболочки (например, ~/.bashrc):
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
ssh-agent > "$XDG_RUNTIME_DIR/ssh-agent.env"
fi
if [[ ! "$SSH_AUTH_SOCK" ]]; then
eval "$(<"$XDG_RUNTIME_DIR/ssh-agent.env")"
fi
Я также изо всех сил пытался запустить ssh-agent
службу systemd (пользователя),соответствующий разделпринадлежащийчасть ssh-агентапринадлежащийстатья ssh-ключинаАрка Викиможет быть, поможет. Вышеуказанный метод сработал как по волшебству, так что у меня не было причин искать альтернативу.
Надеюсь, это будет вам полезно.