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_configForceCommandパスワードなしで公開鍵認証を使用することができ、ユーザーが気づかないことがあります。

答え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)

関連情報