配置完后可以使得Gogs的ssh地址不需要端口
- 創(chuàng)建
git
用戶并把git
用戶設置uid
為1000
染簇,sudo useradd git -u 1000
- 創(chuàng)建一個存放
gogs container
的目錄,并把目錄所有者授予git
用戶薪捍,sudo chown -R git:git your_path
- 切換到
git
用戶,共享.ssh
目錄:
ln -s your_path/git/.ssh ~/.ssh
- 生成
git
用戶的public key
蹄梢,ssh-keygen
然后接三個回車 - 把生成的
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
- 切換到
root
用戶或者具備sudo
權限的用戶,運行下面這個腳本:
mkdir -p /app/gogs/
cat >/app/gogs/gogs <<'END'
#!/bin/sh
ssh -p your_ssh_port -o StrictHostKeyChecking=no git@127.0.0.1 \
"SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"
END
chmod +x /app/gogs/gogs
Enjoy it!
Tips:
git
的sh
不能設置為git-shell
Final
經過本人折騰的經歷發(fā)現(xiàn)憔杨,當刪除一個秘鑰的時候蘸拔,整個
authorized_keys
文件都會被清空。所以目前本人已經放棄在docker-compose
中集成Gogs
了负芋。
二進制大法好漫蛔!