Git 사용자의 SSH를 Git 서버로 전달

Git 사용자의 SSH를 Git 서버로 전달

이 간단한 질문에 대한 정보를 찾는 것은 놀라울 정도로 어렵습니다.

많은 사람들과 마찬가지로 우리도 원격 인스턴스에서 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)

관련 정보