이 간단한 질문에 대한 정보를 찾는 것은 놀라울 정도로 어렵습니다.
많은 사람들과 마찬가지로 우리도 원격 인스턴스에서 gitlabs/gogs 서버를 실행합니다. 현재 포트 10022에서 수신 대기합니다. 또한 이 인스턴스에서 SSH를 실행하여 서버를 관리합니다. 포트 22에서 수신 대기합니다.
포트 22에서 수신 대기하는 SSH 서버가 Git@ ONLY 연결을 10022의 Git 서버로 전달하기를 바랍니다.
이렇게 하면 사람들이 Git을 로컬로 사용할 때 매번 원격 Git 서버의 포트를 수동으로 지정할 필요가 없습니다.
우리는 무엇을 해야 합니까?
답변1
나는 이것을 해본 적이 없지만 이것이 귀하의 요구 사항에 맞을 수도 있습니다.
force 명령은 실제 서버에 ssh를 실행하는 Match
것일 git
수 있습니다 sshd_config
. ForceCommand
비밀번호 없이 공개키 인증을 사용할 수 있어 사용자가 이를 눈치채지 못할 수 있습니다.
답변2
더 쉬운 방법은 다음과 같습니다.
사용자에게 git 서버의 별칭을 ~/.ssh/config
.
예를 들어:
# put into ~/.ssh/config
Host mygitlab
Hostname git.example.org
Port 10022
그런 다음 사용자는 다음과 같이 복제할 수 있습니다.
$ git clone mygitlab:someuser/somerepo.git
답변3
해결책은 gitlab GUI에 있습니다. 복제 버튼을 클릭하고 명령줄에 붙여넣기만 하면 됩니다.
$ git clone ssh://[email protected]:10022/mygroup/myproject.git
다음을 통해 모든 것이 올바른지 확인할 수 있습니다.
$ git remote -v
origin ssh://[email protected]:10022/mygroup/myproject.git (fetch)
origin ssh://[email protected]:10022/mygroup/myproject.git (push)