如何解决奇点/ubuntu:如何使用主机真实代理
从 ubuntu 18.04(或更新版本)创建的奇点镜像有一个运行脚本,其中包括使用 ssh git clone 一些存储库。
理想情况下,我希望:当执行图像时,主机的(已激活)ssh 密钥用于(git ssh clone)身份验证。
所以事情可以这样运行:
ssh-add ~/.ssh/my_key # and possibly typing password
./myimage.sif
这可能吗?
解决方法
简答:是的
SINGULARITY_BIND=$SSH_AUTH_SOCK ./myimage.sif
singularity run -B $SSH_AUTH_SOCK myimage.sif
长答案:是的,只要正确的目录和环境变量传递给图像。
您需要:
-
git
/ssh
安装在奇异图像中(可能在也可能不在默认的 docker 图像中) - 您的
$HOME
目录安装在其中。这是默认设置,但可能需要手动执行 (-H /home/my_user
),具体取决于配置 - ssh-agent 环境变量
SSH_AUTH_SOCK
导出。默认情况下,您的主机环境会传递到容器中,但这可以通过-e | --cleanenv
禁用 - 安装在
$SSH_AUTH_SOCK
中设置的路径。这就是我们使用SINGULARITY_BIND
或-B $SSH_AUTH_SOCK
的原因
测试您的密钥是否被正确访问的简单方法:
$ singularity exec -B $SSH_AUTH_SOCK myimage.sif ssh -T git@github.com
Hi tsnowlan! You've successfully authenticated,but GitHub does not provide shell access.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。