3 回答
TA貢獻1784條經驗 獲得超2個贊
~/.ssh/authorized_keys
command="[path]/gitolite-shell sitaram",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA18S2t... command="[path]/gitolite-shell usertwo",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArXtCT...
首先,它會發現該文件中的哪個公鑰與傳入的登錄名匹配。一旦找到火柴, 它將運行該行上的命令。例如,如果我登錄,它就會運行 [path]/gitolite-shell sitaram.所以首先要注意的是,這樣的用戶沒有獲得“shell訪問”,這是很好的!
(強制命令=沒有交互式shell會話
但是,在運行命令之前, sshd設置一個環境變量,稱為 SSH_ORIGINAL_COMMAND,其中包含實際的 git您的工作站發出的命令。 如果您沒有 command=在授權的密鑰文件中。
什么時候 gitolite-shell獲取控件時,它將查看第一個參數(“ sitaram", "usertwo“,等等)以確定您是誰。然后查看 SSH_ORIGINAL_COMMAND變量來查找要訪問的存儲庫,以及您是在讀還是寫。
現在它已經 請求的用戶、存儲庫和訪問(讀/寫),gitite查看其配置文件,并允許或拒絕請求。
authorized_keysgitolite-shell
print_version()info
sub print_version {
chomp( my $hn = `hostname -s 2>/dev/null || hostname` );
my $gv = substr( `git --version`, 12 );
$ENV{GL_USER} or _die "GL_USER not set";
print "hello $ENV{GL_USER}, this is " . ($ENV{USER} || "httpd") . "\@$hn running gitolite3 " . version() . " on git $gv\n";
}hello admin, this is git@server running gitolite3 v3.0-12-ge0ed141 on git 1.7.3.4
TA貢獻1868條經驗 獲得超4個贊
TA貢獻2041條經驗 獲得超4個贊
檢查試圖登錄的人的公鑰 將公鑰映射到訪問控制列表。
添加回答
舉報
