Ssh

如何允許 linux subversion 使用者只執行 svnserve?

  • March 19, 2010

我有一個使用者,我希望只能使用顛覆。我們有時喜歡使用 svn+ssh:// URL(用於公鑰等),所以我需要它們能夠通過 ssh 連接並僅執行 svnserve 命令。

當使用 svn+ssh URL 時,svn ssh’es in 並傳遞參數“-c svnserve -t”。我編寫了一個如下的自定義 shell 來過濾可以執行的命令。這可行,但它沒有將輸入傳遞給 svnserve,所以當我嘗試“svn up”時,我得到“svn:連接意外關閉”。

#!/bin/bash
if [ "$1" == "-c" ] && [ "$2" == "svnserve" ] && [ "$3" == "-t" ] && [ "$4" == ""] ; then
       exec svnserve -t
else
       echo "Access denied. User may only run svnserve."
fi

我很確定您可以在 sshd_config 的末尾添加這樣的內容。

Match User svnuser
 ForceCommand svnserve -t

在文件 authorized_keys 中command="svnserve",在他的密鑰開頭添加行和諸如此類的內容。這樣,當他與 ssh 連接時,它將執行該命令然後退出,例如

command="svnserve" ssh-rsa AAA...LONG AND TEDIOUS KEY...== user@localhost

檢查man sshd顛覆文件以獲取詳細資訊

引用自:https://serverfault.com/questions/123501