Ssh

通過 ssh 通信時 git 使用哪些命令?

  • July 3, 2018

使用command=""in authorized_keys,我可以限制可以由特定鍵執行的命令。

為了使 git 遠端正常執行,我需要允許哪些命令?

Pro Git 書中我可以推斷出這一點git-upload-pack並且git-receive-pack是必需的,但還有什麼其他的嗎?

注意我仍然希望能夠正常登錄使用者,只是不用這個鍵。

Git 包含一個git-shell適合用作僅 Git 登錄 shell 的命令。它完全接受以下命令:

git receive-pack

git upload-pack

git upload-archive

git-receive-pack

git-upload-pack

git-upload-archive

cvs 伺服器(用於模擬 CVS 伺服器,Git 協議不需要)

所以這些是您需要允許的唯一命令。我可以訪問的每個 Git 版本都只使用帶連字元的版本。

git-shell對於您想做的事情,它本身也可能足夠好。


GIT_SSH您可以通過設置回顯參數的 shim來驗證 Git 正在為任何特定命令執行什麼。製作一個腳本ssh.sh

#!/bin/bash
echo "$@" >&2

然後執行:

GIT_SSH="./ssh.sh" git push

你會看到它試圖執行的遠端命令。

引用自:https://unix.stackexchange.com/questions/140089