Ssh
如何允許 linux subversion 使用者只執行 svnserve?
我有一個使用者,我希望只能使用顛覆。我們有時喜歡使用 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
和顛覆文件以獲取詳細資訊