配置使用Docker构建的Gogs的SSH

配置完后可以使得Gogs的ssh地址不需要端口

  1. 创建git用户并把git用户设置uid1000sudo useradd git -u 1000
  2. 创建一个存放gogs container的目录,并把目录所有者授予git用户,sudo chown -R git:git your_path
  3. 切换到git用户,共享.ssh目录:
ln -s your_path/git/.ssh ~/.ssh
  1. 生成git用户的public keyssh-keygen然后接三个回车
  2. 把生成的id_rsa.pub附加到authorized_keys文件:
cat id_rsa.pub >> authorized_keys | echo -n 'no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ' >> authorized_keys
  1. 切换到root用户或者具备sudo权限的用户,运行下面这个脚本:
mkdir -p /app/gogs/
cat >/app/gogs/gogs <<'END'
#!/bin/sh
ssh -p your_ssh_port -o StrictHostKeyChecking=no [email protected] \
"SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"
END
chmod +x /app/gogs/gogs
  1. Enjoy it!

Tips: gitsh不能设置为git-shell

Final

经过本人折腾的经历发现,当删除一个秘钥的时候,整个authorized_keys文件都会被清空。所以目前本人已经放弃在docker-compose中集成Gogs了。

 二进制大法好!

你可能感兴趣的:(配置使用Docker构建的Gogs的SSH)