Если я открываю терминал gnome и подключаюсь к серверу через SSH, меня спрашивают о моей ключевой фразе с помощью текстовой подсказки в моем терминале вместо графического интерфейса пользователя, и, что еще хуже, эта пароль не сохраняется в памяти на время мой сеанс Ubuntu.
Напротив, я использую ключи PGP с Enigmail в Thunderbird, и мне приходится вводить свои парольные фразы только один раз за сеанс, используя графический интерфейс.
Кажется, у меня установлено и запущено 3 агента: seahorse-daemon, gpg-agent и ssh-agent, и они, похоже, не очень хорошо играют. У меня тоже работает гном-брелок. Я не понимаю, что должна делать каждая из этих программ.
ssh-agent запускается моей системой с "/ usr / bin / gpg-agent" в качестве первого аргумента команды, и я не понимаю, что это значит.
Как настроить агента, который будет использоваться для ключей SSH?
Я не использую утилиту с графическим интерфейсом в «настройках» -> «пароли и ключи»
Я установил связку ключей.
sudo apt-get install keychain
blockquote>Если вы используете bash, вам нужно добавить несколько команд в ваш .bash_profile Если у вас нет .bash_profile создайте его в своей домашней папке. Добавьте эти строки:
### START-Keychain ### # Let re-use ssh-agent and/or gpg-agent between logins /usr/bin/keychain $HOME/.ssh/id_dsa source $HOME/.keychain/$HOSTNAME-sh ### End-Keychain ###
В начале рабочего дня я войду в систему. Когда я открываю терминал, мне будет предложено ввести пароль. Для всех других новых терминалов и подключений меня не будут спрашивать о моей парольной фразе снова.
Запустите ssh-add
в терминале и введите пароль при появлении запроса. Если это работает, то каждый последующий доступ к вашему ключу ssh должен работать без каких-либо подсказок во всех терминалах и приложениях, запущенных в одном сеансе X.
Я провел много испытаний и исследований, чтобы выяснить, что большинство документов устарели, вот простой и эффективный способ заставить его работать.
В нижней части вашего файла .bashrc просто поместите это в:
# use a tty for gpg
# solves error: "gpg: signing failed: Inappropriate ioctl for device"
GPG_TTY=$(tty)
export GPG_TTY
# Start the gpg-agent if not already running
if ! pgrep -x -u "${USER}" gpg-agent >/dev/null 2>&1; then
gpg-connect-agent /bye >/dev/null 2>&1
gpg-connect-agent updatestartuptty /bye >/dev/null
fi
# Set SSH to use gpg-agent
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $ ]; then
export SSH_AUTH_SOCK="${HOME}/.gnupg/S.gpg-agent.ssh"
fi
# add alias for ssh to update the tty
alias ssh="gpg-connect-agent updatestartuptty /bye >/dev/null; ssh"
Надеюсь, что это спасет кого-то от головной боли от старой документации.