singularity / ubuntu : 如何使用主机正版代理
singularity / ubuntu : how to use the host authentical agent
从 ubuntu 18.04(或更新版本)创建的奇点图像有一个 运行 脚本,除其他外,git 使用 ssh 克隆一些存储库。
理想情况下,我希望这样:执行映像时,主机的(已激活的)ssh 密钥用于(git ssh 克隆)身份验证。
所以事情可以 运行 像:
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.
从 ubuntu 18.04(或更新版本)创建的奇点图像有一个 运行 脚本,除其他外,git 使用 ssh 克隆一些存储库。
理想情况下,我希望这样:执行映像时,主机的(已激活的)ssh 密钥用于(git ssh 克隆)身份验证。
所以事情可以 运行 像:
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.