この簡単な質問に関する情報を見つけることは驚くほど難しいです。
多くの人と同様に、私たちもリモートインスタンスで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)