Я использую schroot для создания некоторых пакетов развертывания, и между средой хоста и средой schroot много времени. Внутри schroot ssh-agent, похоже, недоступен, поэтому каждый раз, когда требуется ssh-ключ, меня просят ввести пароль.
Насколько я могу судить из этого http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574723 ssh-agent должен работать.
Я пытался установить такие вещи, как SSH_AUTH_SOCK
и SSH_AGENT_PID
, но, хотя файл можно увидеть в chroot, ssh по-прежнему запрашивает ключевую фразу-пароль.
Я также пытался добавить скрипт сценария монтирования ssh в мой файл setup.d, но, опять же, он все еще запрашивает фразу-пароль:
sudo cp /usr/share/doc/schroot/contrib/setup.d/10mount-ssh /etc/schroot/setup.d/
sudo chmod +x /etc/schroot/setup.d/10mount-ssh
Я также пытался переименовать [ 113] сценария к 11mount-ssh
, так что я знаю, что это произойдет после запуска сценария 10mount
, но он все еще спрашивает.
Я нахожусь на рэнгере, поэтому у меня есть довольно свежая версия schroot.
У меня была та же проблема: просмотр скрипта mount-ssh показывает, что ему нужны переменные окружения, передаваемые либо с аргументом -p
, либо путем установки preserve-environment=true
в соответствующем профиле в schroot.conf
.
Мне также пришлось раскомментировать запись /run
bind mount из файла /etc/schroot/[profile name]/fstab
.
Изменение вручную SSH_AUTH_SOCK
не работает для меня, но флаг -p
помог в моем случае.
Шаги:
10mount-ssh
как вы. ssh-add
на хосте schroot -p -c <chroot> --automatic-session
, поэтому chroot
должны иметь те же переменные среды, что и хост (из-за флага -p
). hg clone ssh://<login>@<host>:<repo>
- команда (из chroot
) не запрашивает пароль.