我正在使用 schroot 构建一些部署包,主机和 schroot 环境之间有很多来回。在 schroot 中,ssh-agent 似乎无法访问,因此每次需要 ssh 密钥时,系统都会要求我输入密码。
据我所知http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574723ssh-agent 应该可以正常工作。
我尝试设置诸如SSH_AUTH_SOCK
和之类的内容SSH_AGENT_PID
,但是尽管可以在 chroot ssh 中看到该文件,但仍然要求输入密钥密码。
我也尝试将 ssh 安装 contrib 脚本添加到我的 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
我也尝试将10mount-ssh
脚本重命名,11mount-ssh
以便我知道它会在10mount
脚本运行后发生,但它仍在询问。
我很兴奋,所以有一个相当新的 schroot 版本。
答案1
手动更改SSH_AUTH_SOCK
对我来说不起作用,但是标志-p
对我有帮助。
脚步:
- 照你的做法复制
10mount-ssh
。 ssh-add
在主机schroot -p -c <chroot> --automatic-session
,所以chroot
应该具有与主机相同的环境变量(由于-p
标志)。hg clone ssh://<login>@<host>:<repo>
- 命令(来自chroot
)不要求密码。
答案2
我遇到了同样的问题,查看 mount-ssh 脚本表明它需要通过参数传递环境变量-p
,或者通过preserve-environment=true
在适当的配置文件中设置来传递环境变量schroot.conf
。
我还必须/run
从文件中取消注释绑定挂载条目/etc/schroot/[profile name]/fstab
。