ssh 経由のトランザクションのみを許可するように git に指示する方法はありますか?
6 ~ 8年後、Git 2.12 (2017 年第 1 四半期) では、Git で使用されるプロトコルを許可または無効にする構成が提案されます。
git config protocol.http.allow never
git config protocol.https.allow never
git config protocol.git.allow never
git config protocol.file.allow never
git config protocol.ssh.allow always
Jeff King ( )によるcommit abcbdc0 (2016 年 12 月 14 日)を参照してください。commit a768a02
、commit aeae4db、commit f1762d7、commit f962ddf、commit 85e4205 (2016 年 12 月 14 日) by Brandon Williams ( )を参照してください。( 2016 年 12 月 27 日にコミット 9d540e9でJunio C Hamanoによってマージされました)peff
mbrandonw
gitster
これにより、クローン/フェッチ/プッシュ中にトランスポートに許可されるプロトコルをより細かく制御できるようになり、新しい構成メカニズムを介して有効になりました。
git config
現在含まれているもの:
protocol.allow
設定されている場合、明示的にポリシーを持たないすべてのプロトコルに対してユーザー定義のデフォルト ポリシーを提供します ( protocol.<name>.allow
)。
デフォルトでは、設定されていない場合、
- 既知の安全なプロトコル (http、https、git、ssh、ファイル) のデフォルト ポリシーは
always
、
- 既知の危険なプロトコル (ext) のデフォルト ポリシーは
never
、および
- 他のすべてのプロトコルのデフォルト ポリシーは
user
です。
サポートされているポリシー:
always
- プロトコルは常に使用できます。
never
- プロトコルは使用できません。
user
- プロトコルはGIT_PROTOCOL_FROM_USER
、設定されていないか、値が 1 の場合にのみ使用できます。
このポリシーは、プロトコルをユーザーが直接使用できるようにしたいが、クローン/フェッチを実行するコマンドで使用したくない場合に使用する必要があります。ユーザー入力なしの /push コマンド (再帰的なサブモジュールの初期化など)。