kwi*_*zzn 9 git ssh sshd gitlab docker
我想在我的主机上配置sshd,以将某个用户的公钥登录转发到运行自己的sshd服务的Docker容器.
为了给出一些上下文,我让GitLab在Docker容器中运行,我不喜欢在主机上打开另一个端口进行SSH GitLab通信,而是让主机上的sshd重定向用户并直接键入GitLab在本地暴露的端口机.
我的想法是做这样的事情:
Match User git
ForceCommand ssh -p <GitLab port> <some arguments that forward to> git@localhost
...
Run Code Online (Sandbox Code Playgroud)
非常感谢帮助!
kwi*_*zzn 10
我发现了一个简单的解决方法.只需在主机上创建一个Git用户,并提供一个代理脚本,该脚本使用主机的SSH守护程序和.ssh/authorized_keys容器卷在GitLab容器中执行给定的Git命令.
在主机上,git使用与GitLab docker容器(998)中相同的UID和GID 添加用户,并将GitLab data目录设置为用户的主目录:
useradd -u 998 -s /bin/bash -d /your/gitlab/path/data git
Run Code Online (Sandbox Code Playgroud)将git用户添加到docker组
usermod -G docker git
Run Code Online (Sandbox Code Playgroud)/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell使用以下内容在主机上添加代理脚本:
#!/bin/bash
docker exec -i -u git <your_gitlab_container_id> sh -c "SSH_CONNECTION='$SSH_CONNECTION' SSH_ORIGINAL_COMMAND='$SSH_ORIGINAL_COMMAND' $0 $1"
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2633 次 |
| 最近记录: |