2011-06-09 49 views
4

我設置了Jenkins CI來將我的PHP應用程序部署到我們的QA Apache服務器,並且遇到了issuse。我成功建立了PUBKEY認證從本地詹金斯帳戶遠程Apache賬戶,但是當我使用rsync,我得到以下錯誤:將rsync用於無shell訪問的遠程SSH用戶

[[email protected] ~]# rsync -avz -e ssh test.txt [email protected]:/path/to/site 
protocol version mismatch -- is your shell clean? 
(see the rsync man page for an explanation) 
rsync error: protocol incompatibility (code 2) at compat.c(64) [sender=2.6.8] 
[[email protected] ~]# 

一個潛在的問題是,遠程apache帳戶沒有一個有效的shell帳戶,我應該創建一個具有shell訪問權限和"apache"組的一部分的遠程帳戶嗎?這不是一個SSH密鑰問題,因爲ssh [email protected]連接成功,但由於apache沒有shell,所以很快就把我踢出去了。

回答

2

這可能是最容易做的事情。您可能希望僅使用像rsshscponly這樣的有限shell進行設置,以僅允許文件傳輸。你也可能想要建立一個chroot監獄,這樣它就不會看到你的整個文件系統。

+0

你能提供命令嗎?我安裝了rssh並嘗試:rsync --partial --progress --rsh = rssh user @ host:/ path/remote_file local_file;仍然遇到同樣的問題。可能是我錯了。 - 感謝 – codeObserver 2012-03-19 22:03:00

0

我同意這可能是最容易做的事情。我們做類似的事情,但改爲使用scp。喜歡的東西:

scp /path/to/test.txt [email protected]:/path/to/site 
0

我知道這是很老的線程,但如果有人遇到這個頁面在未來...

我有同樣的問題,但得到了固定,當我固定我的.bashrc 。 我刪除了之前在我的.bashrc中的語句「echo setting DISPLAY = $ DISPLAY」。出於某種原因,rsync與該語句有關。 因此,修復.bashrc/.cshrc/.profile錯誤對我有幫助。

+1

這可能是相同的errror messge,但不同的isse。如果你有一個沒有shell訪問的_SSH用戶,這將不起作用 – yellowsir 2015-03-24 12:41:39