ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ssh ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ ΡΡΠΎ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π°Π΄ΡΠ΅ΡΠ° Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ° ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° gitea
ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π° ΡΠ°ΠΉΡΠ΅: Gitea Documentation
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ git Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΡΠΎΠ»Ρ
sudo useradd -m -s /bin/bash git
sudo mkdir -p /home/git/.ssh
sudo touch /home/git/.ssh/authorized_keys
sudo chmod 700 /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys
sudo chown -R git:git /home/deniom/.ssh
- ΠΠ½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² docker compose
ports:
- "127.0.0.1:2222:22"
environment:
- USER_UID=1001
- USER_GID=1001
ΠΠ΄Π΅ USER_UID ΠΈ USER_GID ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
id git
- ΠΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ gitea ΠΈ Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΠ°Π²Π° Π½Π° ΠΏΠ°ΠΏΠΊΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π½Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½ΠΈΠΆΠ΅, Π²ΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ Π³ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄ΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
sudo chown -R git:git /home/deniom/docker/gitea/data
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ»ΡΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ Ρ gitea, ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
sudo -u git ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"
sudo -u git cat /home/git/.ssh/id_rsa.pub | sudo -u git tee -a /home/git/.ssh/authorized_keys
sudo -u git chmod 600 /home/git/.ssh/authorized_keys
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SSH
cat <<"EOF" | sudo tee /usr/local/bin/gitea
#!/bin/sh
ssh -p 2222 -o StrictHostKeyChecking=no git@127.0.0.1 "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"
EOF
sudo chmod +x /usr/local/bin/gitea
ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ gitea Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΠΏΠΎ 22 ΠΏΠΎΡΡΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ gitea.
6. ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ gitea Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ
7. ΠΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ gitea. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ΄Π΅ΠΌ Π² ΠΡΠΎΡΠΈΠ»Ρ -> ΠΠ»ΡΡΠΈ SSH -> ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ»ΡΡ
8. ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ°Π±ΠΎΡΡ (ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ip)
git clone git@192.168.0.132:Deniom\testrepa.git
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ gitea ΠΏΠΎ ssh Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΌΠ΅Π½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ tcp ΡΡΠ°ΡΠΈΠΊΠ° ΠΏΠΎ 22 ΠΏΠΎΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ traefik.
ΠΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΡ Π½ΠΎ ΡΠΎΠ³Π΄Π° ΡΡΡΠ»ΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡΡ ΡΠ°ΠΊ ssh://git@gitea.mydomain.com:2222/Deniom/Test.git
- ΠΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ssh Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ traefik Ρ 22 ΠΏΠΎΡΡΠ° (ΡΠΌ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ° Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎ SSH)
- ΠΠ½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Traefik ΠΎΡΠΊΡΡΠ² 22 ΠΏΠΎΡΡ
ports:
- 22:22
- Π ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
traefik.yml
Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΡΠΊΡ Π²Ρ
ΠΎΠ΄Π° ssh
entryPoints:
ssh:
address: ":22"
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ gitea Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ΅ΠΊΡΠΈΡ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ tcp
tcp:
routers:
gitea-ssh:
entryPoints:
- ssh
rule: "HostSNI(`*`)"
service: gitea-ssh
services:
gitea-ssh:
loadBalancer:
servers:
- address: 192.168.0.132:22
Π‘Π΅ΠΊΡΠΈΡ tcp Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π° Π½Π΅ Π²ΡΡΡΠΎΠ΅Π½Π° Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ http, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π°.
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π΄ΠΎΠΌΠ΅Π½Ρ
git clone git@gitea.domein.ru:Deniom\testrepa.git
ΠΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ· Π²Π½Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΊΠΈΠ΄ΡΠ²Π°ΡΡ 22 ΠΏΠΎΡΡ Π½Π° traefik ΠΈΠ½Π°ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΡΠ΅Π³ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ, Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΡΡΠ΅ΡΠ°.
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ssh ΠΏΡΠΎ Π°ΡΠ°ΠΊΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΊΠ°ΠΊ Π½Π° ΡΠΊΡΠΈΠ½Π΅ Π½ΠΈΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΈΡΡΠΈΡΡ ΡΠ°ΠΉΠ»Ρ Π² /home/git/.ssh/ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ½ΠΊΡ 4 ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ.
