Ich habe bei mir in meinem kleinen Homelab einen Gitea Server am laufen. Über die Jahre, habe ich die Installation aktuell mit Docker realisiert. Dazu ein kleines Schema:

+----------+
| firewall |
+---+------+
    |
    | 22
    |
+---+------+
| admin1-1 |
+---+------+
    |
    | 22
    |
+---+-------+
| docker1-1 +---- gitea-ssh:2222
+---+-------+                ^
    |                        |
    +------------------------+

Damit der Gitea-SSH jetzt angesprochen werden kann, gibt es verschiedene Lösungen. Ich mache es aktuell über einen SSH Jumphost in der Git Konfiguration. Ist nicht optimal aber sie funktioniert:

[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
  sshCommand = ssh -o ProxyJump=git@<EXTERNAL-IP> -p 2222
[remote "origin"]
  url = git@docker1-1:/foxit/test123.git
  fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
  remote = origin
  merge = refs/heads/main

Der Host admin1-1 dient somit als “Jumphost”. Eine Verbindung wird über Port 22 aufgebaut dann aber an den Host docker1-1 mit Port 2222 weitergeleitet. Die Konfiguration kann man auch in der Datei: .ssh/config vornehmen. Dies hätte den Vorteil, dass sie nicht nur für dieses Repository gelten würde.