У меня есть Yubikey4, загруженный моим gpg-ключом, действующим как смарт-карта. Я могу сделать gpg2 card-status
и он дает мне весь shebang, показывая все мои подразделы, и все в порядке.
Затем я хотел использовать gpg-agent для ssh на удаленных хостах, используя мой ключ gpg. Я добавил следующее в мой ~/.gnupg/gpg-agent.conf
enable-ssh-support
pinentry-program /usr/bin/pinentry-curses
default-cache-ttl 60
Я также установил SSH_AUTH_SOCK
в моем .bashrc так:
export SSH_AUTH_SOCK=~/.gnupg/S.gpg-agent.ssh
Если я затем перезагружаю свою машину, ключ добавляется и отображается с помощью команды ssh-add -l
4096 SHA256....... cardno: ..... (RSA)
Но любые попытки ssh на удаленный сервер просто зависают, ssh -vvv
говорит мне, что машина пытается подписать и отправить ключ, но агент отказывается работать.
Если я затем выполню сценарий, который я сделал с использованием различных источников, все это работает.
killall gpg
export SSH_AUTH_SOCK=~/.gnupg/S.gpg-agent.ssh; gpg-agent --daemon --keet-tty --use-standard-socket --pinentry-program=/usr/bin/pinentry-curses
Я попытался реализовать это с помощью bashrc, запустив его с помощью моего deskopt-manager и пользовательской задачи systemd, но безрезультатно.
Кто-нибудь может помочь мне понять, как запустить это автоматически при входе в систему, без необходимости выполнять "мой сценарий"?